Configuration 类简介

开发Android app ,增加对系统的响应是非常有必要的,比如系统横竖屏切换,比如某个配置更改,比如wifi信号 ,3G信号等等,这个时候程序就需要一套完整的系统监控类,以便在系统变动的时候能够及时的应对..而在android开发中 能做到该监控功能的就是 Configuration 了

Configuration 类
通过 Configuration 类可以准确的获得系统的各种配置信息(用户配置和系统设置信息都能获得)
程序可调用Activity的如下方法来获取系统的Configuration对象:

Configuration cfg = getResources().getConfiguration();

一旦获得了系统的Configumtion对象,可通过如下的属性字段获得系统信息和配置项。
->public float fontScale:获取当前用户设置的字体的缩放因子。
->public int keyboard:获取当前设备所关联的键盘类型。该属性可能返回如下值.• KEYBOARD一NOKEYS、KEYBOARD.QWERTY (普通电脑键盘)、 KEYBOARD_12KEY (只有12个键的小键盘)。
->public int keyboardHidden:该属性返回一个boolean值用于标识当前键盘是否可 用。该属性不仅会判断系统的硬件键盘,也会判断系统的软键盘(位于屏幕上)。 如果该系统的硬件键盘不可用,但软键盘可用,该属性也会返回keyboardhidden_ NO;只有当两个键盘都不可用时才返回KEYBOARDHIDDEN_YES。
->public Locale locale:获取用户当前的 Locale。
->public int mcc:获取移动信号的国家码。
->public int mnc:获取移动信号的网络码。
->public int navigation:判断系统上方向导航设备的类型。该属性可能返回如

            NAVIGATION_NONAV (无导航)、

            NAVIGATION_DPAD (DPAD 导航)、

            NAVIGATION— TRACKBALL (轨迹球导航)、

            NAVIGATION一WHEEL (滚轮导航)等属性值。

->public int orientation:获取系统屏幕的方向,该属性可能返回

            ORIENTATION_ LANDSCAPE (横向屏幕)、

            ORIENTATION一PORTRAIT (竖向屏幕)、

            ORIENTATION一SQUARE (方形屏幕)等属性值。

public int touchscreen:获取系统触摸屏的触摸方式。该属性可能返回

            TOUCHSC- REEN_NOTOUCH (无触摸屏)、

            TOUCHSCREEN一STYLUS (触摸笔式的触摸 屏)、

            TOUCHSCREEN_FINGER (接受手指的触摸屏)。

代码实例:


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView mTextView = (TextView) findViewById(R.id.text);
        Configuration configuration = getResources().getConfiguration();
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("国家码:").append(configuration.mcc).append("\n")
        .append("网络码:").append(configuration.mnc).append("\n");
        if(configuration.orientation == Configuration.ORIENTATION_PORTRAIT) {
            stringBuilder.append("竖屏");
        }else {
            stringBuilder.append("横屏");
        }
        stringBuilder.append("\n").append("字体的缩放因子:").append(configuration.fontScale).
                append("\n").append("键盘类型:").append(configuration.keyboard);
        if(configuration.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO) {
            stringBuilder.append("\n").append("键盘是否隐藏:").append(false);
        }else {
            stringBuilder.append("\n").append("键盘是否隐藏").append(true);
        }

        stringBuilder.append("\n").append("Local:").append(configuration.locale.getCountry()+configuration.locale.getLanguage()).append("\n");
        switch (configuration.navigation) {
            case Configuration.NAVIGATION_NONAV:
                stringBuilder.append("无导航");
                break;
            case Configuration.NAVIGATION_DPAD:
                stringBuilder.append("DPAD 导航");
                break;
            case Configuration.NAVIGATION_TRACKBALL:
                stringBuilder.append("轨迹球导航");
                break;
            case Configuration.NAVIGATION_WHEEL:
                stringBuilder.append("滚轮导航");
            case Configuration.NAVIGATION_UNDEFINED:
                stringBuilder.append("没有定义的导航");
        }
        stringBuilder.append("\n");
        switch (configuration.touchscreen) {
            case Configuration.TOUCHSCREEN_FINGER:
                stringBuilder.append("手指的触摸屏");
                break;
            case Configuration.TOUCHSCREEN_NOTOUCH:
                stringBuilder.append("无触摸屏");
                break;
            case Configuration.TOUCHSCREEN_UNDEFINED:
                stringBuilder.append("没有定义");
                break;
        }


        mTextView.setText(stringBuilder);
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值