次の方法で、デバイスの現在のバッテリー レベルを取得しようとしています。
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' が生成される場合がある
これが実際に私のアプリケーションに影響を与えることはないかもしれませんが、それに依存する最終製品があるため、この潜在的な問題にどのように対応できるのでしょうか? 上記を再編成して同じ結果を得る (バッテリーの現在の充電状態を取得する) 方法はありますか?