我正在尝试通过以下方式获取设备的当前电池电量:
Intent batteryIntent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
Log.i(LOG_FILTER, "Battery level = " + (level*100)/scale);
// error check values
if (level == -1 || scale == -1) {
return -1;
} else {
return (level * 100) / scale;
}
该代码似乎有效并且从未让我失望,但我收到警告:
方法调用 'batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1)' 可能会产生 'java.lang.NullPointerException'
这可能永远不会真正影响我的应用程序,但由于最终产品依赖于它,我想知道,我该如何解决这个潜在问题? 有没有办法对上述内容进行重组以达到相同的结果(获取电池的当前充电状态)?