gpt4 book ai didi

android - 在android中检测每个百分比的电池状态变化

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:00:59 25 4
gpt4 key购买 nike

我想检测每个百分比的电池变化。我可以用广播接收器检测一次电池电量。但当 % 从 66 变为 67 时,它不会自动更新值。

这是我的代码。

   private void batteryLevel() {
BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
context.unregisterReceiver(this);
Log.i("Battery CHANGED******",":: IN RECEIVER");

int rawlevel = intent.getIntExtra("level", -1);
int scale = intent.getIntExtra("scale", -1);
int level = -1;
if (rawlevel >= 0 && scale > 0) {
level = (rawlevel * 100) / scale;
}
btnConsumer.setText("Battery Level Remaining: " + level + "%");
}
};
IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryLevelReceiver, batteryLevelFilter);

}

添加权限

 <uses-permission android:name="android.permission.BATTERY_STATS"></uses-permission>

它检测到 66,但当它更改为 65 或 67 时,它不会更新值。还是不显示log

我想让它变得像我能得到每一个变化。

提前致谢。

最佳答案

首先,您不需要BATTERY_STATS 权限。

其次,onReceive() 的第一行注销了您的 BroadcastReceiver,从而阻止您获得任何进一步的更新。

第三,我们无法保证每次 1% 的变化都会向您提供电池信息。例如,许多摩托罗拉手机每 10% 只发送一次 ACTION_BATTERY_CHANGED,直到电池电量变低。广播 ACTION_BATTERY_CHANGED 的频率由设备制造商决定,而不是您。

关于android - 在android中检测每个百分比的电池状态变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10189218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com