OnReceive Battery(如何跟踪每1%)

时间:2013-03-15 19:59:43

标签: android

我有一个简单的广播公司,听取ON_CHANGE事件,所以我的主要问题是为什么我的手机有时会下降1%而不是2%,3%或4%?

有时感觉就像手机睡觉并且没有接受这种意图,但过了一段时间它又从睡眠中恢复并且不是1%而是4% 的修改

   /* Broadcast Receiver for battery stats                                               */
            IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);


            batteryLevelReceiver = new BroadcastReceiver(){
                @Override
                public void onReceive(Context context, Intent intent){
                    int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
                    int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
                    int isCharging = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);

......

    registerReceiver(batteryLevelReceiver, batteryLevelFilter);

1 个答案:

答案 0 :(得分:2)

  

所以我的主要问题是为什么我的手机有时会下降1%但是   减少2%,3%或4%?

这不应该发生。通常,在电池耗尽1%(或电池状态一般变化)后,广播将被点燃。但有一个例外。在某些摩托罗拉设备上,ACTION_BATTERY_CHANGED只会每10%启动一次。对于一个广播接收器的工作示例,它听取了ACTION_BATTERY_CHANGED看到this answer我给了一段时间。

  

但经过一段时间后,它又从睡眠状态恢复,并且不是1%而是4%

Broadcastreceiver没有唤醒你的手机,所以这并不罕见:)