博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android官方开发文档Training系列课程中文版:电池续航时间优化之检查与监测坞的状态与类型...
阅读量:7189 次
发布时间:2019-06-29

本文共 1102 字,大约阅读时间需要 3 分钟。

原文地址:

Android设备可以被放置在若干种不同的扩展坞中。这些扩展坞包括汽车坞与家庭坞以及数字与模拟坞。其中坞的状态与充电状态非常相近,因为这些坞也提供了充电功能。

译者提示:这里说的是一种扩展设备,Android中比较少见,而苹果设备比较常见。我们常见的苹果设备的扩展坞就是苹果体验店所见的各种小型音响设备。

APP在何种坞中的运行频率取决于APP自身。你可以在设备处于APP坞时提高运动类APP的更新频率,或者设备处于汽车坞时完全关闭更新,或者也可以在APP在更新交通信息时将更新频率提高至最大。

这些坞的状态也同样通过粘性Intent广播获取,它可以用来查询是否被放置在了某个坞中,如果被放置了,那么可以查询是何种类型的坞。

检查当前坞的状态

当前坞的状态被放置在粘性Intent中。因为它是粘性的,所以不需要注册广播接收器。你可以直接通过方法直接获得这个Intent。

IntentFilter ifilter = new IntentFilter(Intent.ACTION_DOCK_EVENT);Intent dockStatus = context.registerReceiver(null, ifilter);

接下来则通过该Intent获取当前坞的状态:

int dockState = battery.getIntExtra(EXTRA_DOCK_STATE, -1);boolean isDocked = dockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;

检查当前坞的类型

如果设备被放置在坞中,那么它可能处于以下类型中:

- Car
- Desk
- 低端桌面坞(模拟)
- 高端桌面坞(数字)

注意后面这两种类型只在Android 11中介绍到,所以只需要统一检查后面这三种类型就可以:

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;

监测坞的状态以及类型的变化

当设备被放置或移除坞时,系统会广播一个。为了可以监测坞状态的变化,只需要在清单文件中注册一个广播接收器就可以:

你可以在对应的广播接收器内获取坞的类型以及状态。

转载地址:http://bhykm.baihongyu.com/

你可能感兴趣的文章
今天的上课感受
查看>>
apps被拒绝的各种理由以及翻译
查看>>
Thinking in Java 笔记
查看>>
注册IOS企业/公司开发者账号流程
查看>>
How to fix libtool: Version mismatch error
查看>>
HCDN——CDN+P2P融合技术-秦建华
查看>>
周兴社-可穿戴计算与健康服务
查看>>
UITextView for Code
查看>>
AlertPickerView
查看>>
ISColumnsController
查看>>
部分JVM参数解释
查看>>
mysql优化技巧
查看>>
java 里关于二叉树排序的问题
查看>>
每天一个linux命令(13):less 命令
查看>>
ios项目常用目录分包结构
查看>>
ThinkPHP中的动态缓存(S方法)和快速缓存(F方法)
查看>>
GoLang练习实例100之006----斐波那契数列
查看>>
富文本编辑器焦点
查看>>
机器学习认知
查看>>
iOS应用程序生命周期(前后台切换,应用的各种状态)详解
查看>>