我正在尝试使用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。是否有其他设置?
发布于 2012-10-02 08:28:14
Calculating Battery Level in %:
您可以通过从电池状态意图中提取当前电池电量和比例来找到当前电池电量,如下所示:
int level = battery.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = battery.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
float batteryPct = level / (float)scale;像这样实现BroadcastReceiver:
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
代码的结果:

发布于 2014-07-27 19:50:52
获取电池充电状态不需要权限,只需在广播接收器中使用以下代码即可:
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL,0);
这将导致电池电量:)
https://stackoverflow.com/questions/12682841
复制相似问题