Android 电源管理专题之获取和监测Dock状态和类型
来源:互联网 发布:vs2010 mfc编程实例 编辑:程序博客网 时间:2024/06/06 04:15
Android 设备可以接在不同类型的 Dock 底座中,其中包括车载的,家用的,以及数字的和模拟的。许多 Dock 基座都能为接在其上面的设备供电,所以,“dock-state”(Dock状态)也通常是接入设备的充电状态。
Dock 状态的变化如何影响您应用程序的服务更新速度取决于您应用程序的设计。假如是一个获取体育赛况的应用程序,那么在 “desktop dock” 状态时,可以提高其数据的更新频率,而当在 “car docked” 状态时,可以完全禁用数据的更新。相反,假如该应用程序是用来获取当前交通路况的,那么就应当在“car docked” 状态时选择最大限度提高数据的更新速度。
系统会广播 “sticky” 类型的 Dock 状态通知 Intent,您可以通过该 Intent 来查询设备当前是否在 Dock 状态,以及具体的 Dock 类型。
获得当前的 Dock 状态
Dock 状态的详细信息可以从 Action 为 ACTION_DOCK_EVENT 中的广播数据中取得,因为广播类型是 “sticky”的,您不需要自己定义 BroadcastReceiver ,只需要调用 registerReceiver() 方法,并且传入空的参数null就可以了。
该方法的返回值 intent 就包括了当前 Dock 状态的详细信息。
示例代码:
IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT);Intent dockStatus = context.registerReceiver(null, ifilter);
您可以通过键值 EXTRA_DOCK_STATE 来取得当前的 Dock 状态。
示例代码:
int dockState = battery.getIntExtra(EXTRA_DOCK_STATE, -1);boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;
获得当前的Dock 类型
如果设备当前在Dock状态,那么目前支持的Dock类型如下:
- Car (车载)
- Desk(家用,桌面)
- Low-End (Analog) Desk (低端模拟)
- High-End (Digital) Desk (高端数字)
请注意后面的两种Dock类型只支持Android API Level 11以上,所以较好的方法是只需要区分大的 dock 类型,而不用去具体关注是数字的,还是模拟的。
示例代码:
boolean isCar = dockState == EXTRA_DOCK_STATE_CAR;boolean isDesk = dockState == EXTRA_DOCK_STATE_DESK ||dockState == EXTRA_DOCK_STATE_LE_DESK ||dockState == EXTRA_DOCK_STATE_HE_DESK;
监测 Dock 状态和类型的变更
每当 Andoid 设备在 Dock 和非 Dock 状态之间切换的时候(即设备接入底座和从底座拔出),系统就会广播 Action 为 ACTION_DOCK_EVENT 的广播。要想在应用程序中捕捉这种状态的变化,您只需要注册一个自定义的广播接收器Receiver就可以了。
示例代码:
<action android:name="android.intent.action.ACTION_DOCK_EVENT"/>
您可以在Receiver的代码实现中获取当前Dock的详细信息,具体方法参照前面的步骤。
参考文摘:
http://developer.android.com/training/monitoring-device-state/docking-monitoring.html
转自:http://blog.zhourunsheng.com/2011/12/android-%e7%94%b5%e6%ba%90%e7%ae%a1%e7%90%86%e4%b8%93%e9%a2%98%e4%b9%8b%e8%8e%b7%e5%8f%96%e5%92%8c%e7%9b%91%e6%b5%8bdock%e7%8a%b6%e6%80%81%e5%92%8c%e7%b1%bb%e5%9e%8b/ | 润物无声
- Android 电源管理专题之获取和监测Dock状态和类型
- Determining and Monitoring the Docking State and TypeAndroid 电源管理专题之获取和监测Dock状态和类型
- Determining and Monitoring the Connectivity StatusAndroid 电源管理专题之获取和监测网络连接状态
- 转: Android 电源管理专题之监测电池电量和充电状态Monitoring the Battery Level and Charging State
- 检测底座(Dock)的状态和类型
- 监测和管理Xcache状态
- 确定和监测对接状态和类型
- 电源管理状态和亮度改变调用流程
- 监测电池电量和充电状态
- Android电量和插拔电源状态广播监听
- 形象理解android电源管理wakelock状态
- Android之PowerManager电源管理
- Android之PowerManager电源管理
- Android之PowerManager电源管理
- Android之PowerManager电源管理
- PDA背光和电源管理
- 禁用屏保和电源管理
- cc2531电源管理和节能
- SQL Server直接执行.sql文件
- Python 字典 元祖 链表 常用方法 及概念区别
- 引用Drawable颜色常数及背景色
- Hadoop 分布式文件系统:架构和设计(http://kb.cnblogs.com/page/161185/)
- js发送邮件确定email地址 .
- Android 电源管理专题之获取和监测Dock状态和类型
- Windows Server 2008远程桌面端口的修改
- 查看linux系统调用表的地址
- js 时间操作
- 理清全表扫描和高水位,行预取的关系
- mysql 存储过程动态执行sql 例子
- spring 在java 获取bean
- Shell编程时出现"[: =: unary operator expected"解决
- PHP-FPM进程CPU 100%的原因及解决方案