0

ACTION_POWER_CONNECTEDACTION_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;
}

あなたが提供できるどんな助けにも感謝します。

4

1 に答える 1

0

実際に行っている既存のBroadcastReceiverに新しいBroadcastReceiverを登録することはできません。

于 2012-10-28T15:53:52.623 に答える