ACTION_POWER_CONNECTED
、ACTION_POWER_DISCONNECTED
およびのインテントを受信するBroadcastReceiverを拡張するクラスにブロードキャストレシーバーを登録するAndroidプロジェクトに取り組んでいACTION_SCREEN_OFF
ます。
これらのさまざまなインテントを受信すると、を拡張する別のクラス内の関数を呼び出しますService
。
受信すると、電源が接続されているかどうかを確認し、接続されていない場合はWakeLockを有効にするACTION_POWER_CONNECTED
という関数も呼び出します。isPowerConnected
私が抱えている問題は、関数を実行するとisPowerConnected
、最初は機能しているように見えますが、それ以降は次のように機能することです。
android.content.ReceiverCallNotAllowedException:IntentReceiverコンポーネントは、インテントを受信するために登録することはできません。
どうすればこれを修正できるのかわかりません。以下は、isPowerConnectedのコードです。
public boolean isPowerConnected()
{
int pluggedIn = -1;
try
{
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
pluggedIn = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
}
catch (Exception ex)
{
Log.e("IsPowerConnected", ex.toString());
}
return pluggedIn == BatteryManager.BATTERY_PLUGGED_AC || pluggedIn == BatteryManager.BATTERY_PLUGGED_USB;
}
あなたが提供できるどんな助けにも感謝します。