为了账号安全,请及时绑定邮箱和手机立即绑定

Configuration 类简介

标签:
Android

开发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:判断系统上方向导航设备的类型。该属性可能返回如

[代码]java代码:

?

1

2

3

4

5

6

7

NAVIGATION_NONAV (无导航)、

 

            NAVIGATION_DPAD   (DPAD 导航)、

 

            NAVIGATION—   TRACKBALL (轨迹球导航)、

 

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

 

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

[代码]java代码:

?

1

2

3

4

5

ORIENTATION_ LANDSCAPE (横向屏幕)、

 

            ORIENTATION一PORTRAIT (竖向屏幕)、

 

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

 

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

[代码]java代码:

?

1

2

3

4

5

TOUCHSC- REEN_NOTOUCH (无触摸屏)、

 

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

 

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

 

代码实例:

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

  @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);

    }

}

原文链接:http://www.apkbus.com/blog-682543-60555.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消