在开发Android应用时,有时候可能需要让应用程序随系统设置而进行调整,比如判断系统的屏幕方向、判断系统方向的方向导航设备等。除此之外,有时候可能还需要让应用程序监听系统设置的更改,对系统设置的更改做出响应。
一、Configuration类
Configuration类专门用于描述手机设备上的配置信息,这些配置信息既包括用户特定的配置项,也包括系统的动态设备配置。程序可调用Activity的如下方法来获取系统的Configuration对象:
Configurationcfg=getResources().getConfiguration();
一旦获得了系统的Configuration对象,就可以使用该对象提供的如下常用属性来获取系统的配置信息。
-
densityDpi:屏幕密度。
-
fontScale:当前用户设置的字体的缩放因子。
-
hardKeyboardHidden:判断硬键盘是否可见,有两个可选值:
-
-
HARDKEYBOARDHIDDEN_NO,值为十六进制的0。
-
HARDKEYBOARDHIDDEN_YES,值为十六进制的1。
-
-
keyboard:获取当前关联额键盘类型:该属性的返回值:
-
-
KEYBOARD_12KEY:只有12个键的小键盘。
-
KEYBOARD_NOKEYS:无键盘。
-
KEYBOARD_QWERTY:普通键盘。
-
-
keyboardHidden:该属性返回一个boolean值用于标识当前键盘是否可用。该属性不仅会判断系统的硬件键盘,也会判断系统的软键盘(位于屏幕)。
-
locale:获取用户当前的语言环境。
-
mcc:获取移动信号的国家码。
-
mnc:获取移动信号的网络码。
-
ps:国家代码和网络代码共同确定当前手机网络运营商。
-
navigation:判断系统上方向导航设备的类型。该属性的返回值:
-
-
NAVIGATION_NONAV:无导航。
-
NAVIGATION_DPAD:DPAD导航。
-
NAVIGATION_TRACKBALL:轨迹球导航。
-
NAVIGATION_WHEEL:滚轮导航。
-
-
orientation:获取系统屏幕的方向。该属性的返回值:
-
-
ORIENTATION_LANDSCAPE:横向屏幕。
-
ORIENTATION_PORTRAIT:竖向屏幕。
-