参照元はこちら。
Android:現在のバッテリーの状態を取得する | 自転車で通勤しましょブログ
public int getBatteryLevel() {
Intent bat = context.registerReceiver(null,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int level = bat.getIntExtra("level", 0);
int scale = bat.getIntExtra("scale", 100);
return level * 100 / scale;
}
でも、context.registerReceiver()のところで、下記エラーが発生している模様。
java.lang.RuntimeException: Unable to start receiver com.example.android.appwidget.MyAppWidgetProvider: android.content.ReceiverCallNotAllowedException: IntentReceiver components are not allowed to register to receive intents
ぬぅ。。。なんて丁寧な説明文(゚∀゚)!
わかる。よーくわかるよ。
というわけで、グーグル先生に聞いてみる(ホントはポイント稼ぐために楽天ウェブ検索)。
目的のため「"registerReceiver(null"」でフレーズ検索してみたが、日本語のページは元ネタのページのみ…。
仕方なく英語のページの中から、なんとなくよさげなこのページを見てみた。
context.getApplicationContext().registerReciever(null, filter);
なるほど、こうすればいいのね。
で、エイヤッとやってみたら、でけた。
以上。
以下、蛇足。
国策をエイヤッとやるのはどうかと思うぞ。民主党さん。