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)方法,这是基于回调的一种事件处理方式。

时间: 2024-12-29 19:15:59

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

python 学习笔记 12 -- 写一个脚本获取城市天气信息

最近在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么能够显示后最重要的就是显示什么的问题了.最容易想到的就是显示时间啊,CPU利用率啊,IP地址之类的.那么我觉得呢,如果能够显示当前时间.温度也是甚好的,作为一个桌面小时钟还是很精致的. 1. 目前有哪些工具 目前比较好用的应该是 weather-util, 之前我获取天气信息一般都是通过它. 使用起来也很简单: (1) Debian/Ubuntu 用户使用 sudo apt-get install weather-util 安装

Android 学习笔记之Volley(六)实现获取服务器的字符串响应...

学习内容: 1.使用StringRequest实现获取服务器的字符串响应...   前几篇一直都在对服务——响应过程的源码进行分析,解析了整个过程,那么Volley中到底实现了哪些请求才是我们在开发中需要进行使用的...Volley实现的东西其实并不是很多,它的主要功能是实现异步进行网络请求和图片加载,其实就是异步加载解析Json数据,异步获取服务器的字符串数据,异步实现网络图片的动态加载,还有一个请求就是清空缓存的请求,不过使用的地方不是很多,主要还是前面三个方面,因此Volley相对于And

android学习笔记37——Menu资源

Menu菜单资源 android应用推荐使用XML来定义菜单,其可提供更好的解耦方式. 菜单资源通常位于res/menu文件夹下,其菜单根元素为<menu.../>,menu元素下可包含子元素如下: <item.../>子元素 定义菜单项 <group.../>子元素 将多个<item>定义的菜单项包装成一个菜单组 <group.../>子元素 用于控制整个菜单组的行为,该元素可指定如下常用属性: checkableBehavior menuCa

【转】Pro Android学习笔记(十四):用户界面和控制(2):Text类控制

目录(?)[-] TextView 例子1在XML中设置autoLink属性 例子2在代码中设置autoLink属性 EditText AutoCompleteTextView MultiAutoCompleteTextView TextView TextView之前已经使用过很多,直接显示,比较简单.但是我们可以同“autoLink”属性,使用户可以点击一个网络连接.电话号码.邮箱地址.地图地址,通过系统应用打开它们.除此之外,还有其他的font属性,minLines,maxLines等等,都

Android学习笔记二

17. 在ContentProvider中定义的getType()方法是定义URI的内容类型. 18. SQLiteDatabase类中的insert/delete/update/query方法其实也挺好用的,我在EquipmentProvider类中做了实现 19. Android专门有个单元测试项目(Android Test Project),在这个项目中,可以新建一个继承AndroidTestCase类的具体测试类来单元测试某个功能.我新建了一个AndroidTestProject项目,在

Android学习笔记-----------内容提供者

Android学习笔记-----------内容提供者 简介 内容提供者主要用于在不同的程序之间实现数据共享的功能;一个程序想要访问其他程序种由内容提供者提供的数据,必须依赖于contentresolver这个类的实例,可以通过getContentResolver()这个方法来获取这个类的实例;这个类提供有query(),insert(),update(),delete()等方法来操作数据这些方法都需要提供个Uri类型的参数,这个Uri对应的就是你需要操作的数据引用.一个uri主要由以以下几个部

Android学习笔记_78_ Android开发中使用软引用和弱引用防止内存溢出

在<Effective Java 2nd Edition>中,第6条"消除过期的对象引用"提到,虽然Java有 垃圾回收机制,但是只要是自己管理的内存,就应该警惕内存泄露的问题,例如的对象池.缓存中的过期对象都有可能引发内存泄露的问题.书中还提到可以用 WeakHashMap来作为缓存的容器可以有效解决这一问题.之前也确实遇到过类似问题,但是没有接触过"弱引用"相关的问题,于是查阅了一些资料. <Java 理论与实践: 用弱引用堵住内存泄漏>

Android学习笔记(四七):Content Provider初谈和Android联系人信息

Content Provider 在数据处理中,Android通常使用Content Provider的方式.Content Provider使用Uri实例作为句柄的数据封装的,很方便地访问地进行数据的增.删.改.查的操作.Android并不提供所有应用共享的数据存储,采用content Provider,提供简单便捷的接口来保持和获取数据,也可以实现跨应用的数据访问.简单地说,Android通过content Provider从数据的封装中获取信息. Content provider使用Uri

Android学习笔记(四五):互联网通信-HttpClient、XML解析(W3C)

前几日Android发布了4.0 Icecream,昨天上网发现Begining Book中有Edition 3的版本,比对一下,还是有相当的改动,不仅仅增加了tablet的部分,对原有的章节有有一些修订,前后的调整等等.先按Edtion 2的顺序看,相同章节的看Edtion 3,然后回头看Edition 3的Chapter 24.25(E2的36).26.27.28.29.44.45.46.47几个新增章节.同时将模拟器改为Android 2.3的版本,已适应可能新增的改动. 访问Intern