天天看点

Android学习笔记(37):用Configuration类获取和监听设备信息

configuration类用于描述手机设备上的配置信息。有时候我们的app需要获取手机的系统信息,并根据手机的信息来调整我们的app,这时候我们就需要用到configuration类。

(1)获取configuration对象

调用activity的方法获取系统的configuration对象:

configuration config = getresources().getconfiguration();

(2)获取设备系统信息

在获取了configuration对象之后,直接访问configuration的共有对象就可以获取设备系统信息。

我们可以通过该对象获取系统的如下配置信息:  

public int densitydpi: 是android系统为不同屏幕尺寸、分辨率提供统一单位(dp)的一个可变参数。

public float fontscale:字体的缩放因子。

public int keyboard:设备关联的键盘类型。返回值为:keyboard_12key、keyboard_nokeys、keyboard_qwerty等。

public int keyboardhidden:表示键盘是否可用。

hardkeyboardhidden_no表示硬键盘不可用,但软键盘可用

hardkeyboardhidden_yes 表示软硬键盘都不可用

public locale locale:获取用户当前所在的地区。

public int mcc:获取移动信号的国家码。

public int mnc:获取移动信息的网络码。

public int navigation:设备方向导航设备的类型。

返回值为:

navigation_dpad:dpad导航

navigation_nonav:无导航

navigation_trackball:轨迹球导航

navigation_undefined:不明

navigation_wheel:滚轮导航

public int orientation:获取系统屏幕的方向。

orientation_landscape:横屏

orientation_portrait:竖屏

public int touchscreen:获取触摸屏的触摸方式。

touchscreen_finger:接受手指的触摸屏

touchscreen_notouch:无触摸屏

touchscreen_stylus:触摸笔式触摸屏

touchscreen_undefined:不明

(3)响应设备系统信息的改变

为了监听系统信息的改变,我们需要重写activity的onconfigurationchanged(configuration  newconfig)方法,这是基于回调的一种事件处理方式。 

继续阅读