安卓手机充电后Lowbattery怎么回事

4天前 (09-19 11:27)阅读1回复0
dyyh
dyyh
  • 管理员
  • 注册排名7
  • 经验值26255
  • 级别管理员
  • 主题5251
  • 回复0
楼主

  判断当前充电状态通过判断当前充电状态开始。BatteryManager会通过一个intent广播所有电池和充电详情,包含充电状态。因为这是一个stickyintent,你不需要注册广播接收器。简单地通过调用registerReceiver,像下面的代码段传入一个null的接收器,当前电池状态的intent就会返回。

  你也可以传入一个真实的接收器对象,但我们暂时不会操作更新,所以这是没必要的。复制代码代码如下:IntentFilterifilter=newIntentFilter(Intent。ACTION_BATTERY_CHANGED);IntentbatteryStatus=context。

  registerReceiver(null,ifilter);//你可以读到充电状态,如果在充电,可以读到是usb还是交流电//是否在充电intstatus=batteryStatus。getIntExtra(BatteryManager。EXTRA_STATUS,-1);booleanisCharging=status==BatteryManager。

  BATTERY_STATUS_CHARGING||status==BatteryManager。BATTERY_STATUS_FULL;//怎么充intchargePlug=batteryStatus。getIntExtra(BatteryManager。

  EXTRA_PLUGGED,-1);booleanusbCharge=chargePlug==BatteryManager。BATTERY_PLUGGED_USB;booleanacCharge=chargePlug==BatteryManager。

  BATTERY_PLUGGED_AC;通常你应该在使用交流电充电时最大化后台更新频率,在使用usb充电时降低,不充电时更低。监听充电状态的改变充电状态很容易改变(插入/拔出充电器),所以监听充电状态,更改刷新频率很重要。充电状态改变时,BatteryManager会发一个广播。

  接收这些事件很重要,甚至在应用没有运行的时候,因为可能你需要后台开启更新服务。所以,在Androidmanifest。xml里注册广播接收器,加上两个action:ACTION_POWER_CONNECTED和ACTION_POWER_DISCONNECTED作为过滤。

  复制代码代码如下:在关联的广播接收器实现里,你可以读出当前充电状态,方法跟上一步说的相同:复制代码代码如下:publicclassPowerConnectionReceiverextendsBroadcastReceiver{@OverridepublicvoidonReceive(Contextcontext,Intentintent){intstatus=intent。

  getIntExtra(BatteryManager。EXTRA_STATUS,-1);booleanisCharging=status==BatteryManager。BATTERY_STATUS_CHARGING||status==BatteryManager。

  BATTERY_STATUS_FULL;intchargePlug=intent。getIntExtra(BatteryManager。EXTRA_PLUGGED,-1);booleanusbCharge=chargePlug==BatteryManager。

  BATTERY_PLUGGED_USB;booleanacCharge=chargePlug==BatteryManager。BATTERY_PLUGGED_AC;}}判断当前剩余电量在某些案例里,判断当前剩余电量同样很有用。如果电量在某些水平之下,你可能会选择降低后台更新频率。

  你可以用下面的代码读到电量:复制代码代码如下://当前剩余电量intlevel=batteryStatus。getIntExtra(BatteryManager。EXTRA_LEVEL,-1);//电量最大值intscale=batteryStatus。

  getIntExtra(BatteryManager。EXTRA_SCALE,-1);//电量百分比floatbatteryPct=level/(float)scale;注:暂时不知道为什么要这样算,在我自己的机器上运行,scale就是100的。

  监听剩余电量显著改变延续监听电池状态不容易,但你不必这么做。一般来说,延续监听电池电量对电池的影响比app的正常行为还要大。所以,只监听剩余电量的指定级别的改变(进入或离开低电量状态)是一个很好的实践。manifest里声明的接收器,会在进入或离开低电量状态时触发。

  复制代码代码如下:剩余电量严重不足时,最好禁用所有后台更新。在你可以使用手机之前就关机了,这种情况下,如果刷新数据并不重要。

0
回帖

安卓手机充电后Lowbattery怎么回事 期待您的回复!

取消