低电量或者高低温检测

  1. 低电量或者高低温检测

frameworks\base\services\core\java\com\android\server\BatteryService.java

BatteryService中的update方法会间隔时间的不断更新。

frameworks\base\core\res\AndroidManifest.xml

这里收到关机广播时会创建一个新的activity task.

frameworks\base\core\java\com\android\internal\app\ShutdownActivity.java

在关机activity task中创建一个关机进程。

frameworks\base\core\java\android\os\PowerManager.java

frameworks\base\services\core\java\com\android\server\power\PowerManagerService.java

这里创建一个runnable 并发送到PMS 消息队列中。mContext 是PMS context。

frameworks\base\services\core\java\com\android\server\power\ShutdownThread.java

根据confirm是否弹出关机确认框。

private static final ShutdownThread sInstance = new ShutdownThread();

这里会创建ShutdownThread 进程,并发送调用PMS binder 的runnable到其消息队列。最后调用ShutdownThread进程run()来关闭其它服务。

  1. A43高低温警示与关机控制

3.1 需求如下

3.2 实现如下

BIT0:充电器电压过高
BIT1:电池高温
BIT2:充电电流过大
BIT3:电池电压过高
BIT4:充电时间过长
BIT5:电池温度过低
增加如下定义:
BIT16:电池温度超过60度,出关机前5S提示:即将关机
BIT17:电池温度低于-20度,出关机前5S提示 :即将关机

vendor\mediatek\proprietary\frameworks\opt\batterywarning\batterywarning.cpp

节点/sys/devices/platform/mt-battery/BatteryNotify 值与BIT0~BIT31对应

android.intent.action.BATTERY_WARNING 对应广播

这里每10s读一次节点值

vendor\mediatek\proprietary\frameworks\opt\batterywarning

低电量app

vendor\mediatek\proprietary\packages\apps\BatteryWarning\src\com\mediatek\batterywarning\BatteryWarningActivity.java

根据广播android.intent.action.BATTERY_WARNING 携带的信息确定警示类型,从而响应的弹出警告框或者关机。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值