BatteryManager 统计信息在 Android 上不起作用

2024-03-09

我正在尝试使用 BroadCastReceiver 获得电池电量:

int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 0);

我已将以下权限添加到 AndroidManifest.xml:

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

当我打印级别和比例时,我看到默认值 0。是否有其他设置?


计算电池电量百分比: http://developer.android.com/training/monitoring-device-state/battery-monitoring.html#CurrentLevel

您可以通过从电池状态意图中提取当前电池电量和规模来找到当前电池电量,如下所示:

int level = battery.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = battery.getIntExtra(BatteryManager.EXTRA_SCALE, -1);

float batteryPct = level / (float)scale;

像这样实现广播接收器:

 BroadcastReceiver mybatteryReceiver= new BroadcastReceiver() {
            public void onReceive(Context context, Intent intent) {
                int rawlevel = intent.getIntExtra("level", -1);
                int scale = intent.getIntExtra("scale", -1);
                int level = -1;
                if (rawlevel >= 0 && scale > 0) {
                    level = (rawlevel * 100) / scale;
                }
                Log.d("TEMP","Battery Level in % is:: " + level + "%");
            }
        };

从这里获取代码 它已经过尝试和测试。工作正常。

https://www.dropbox.com/s/1y6q5wu526ngz7t/BatteryStats.zip https://www.dropbox.com/s/1y6q5wu526ngz7t/BatteryStats.zip

Result of the code : enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BatteryManager 统计信息在 Android 上不起作用 的相关文章

随机推荐