0

ブロードキャスト レシーバーでウェイク ロックを取得して、目覚まし時計アプリケーションで携帯電話をスリープ状態から復帰させようとしています。以下のコードの次の行でクラッシュします。

PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");

何が起こっているのですか?これを行うより良い方法はありますか?ありがとう!

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.os.PowerManager;

public class RepeatingAlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) { 
         AlarmAlertWakeLock.acquireCpuWakeLock(context);
         PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
         PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
         wl.acquire();

    }

}
4

2 に答える 2

1

WAKE_LOCK許可があることを確認してください( を確認してくださいAndroidManifest.xml)。

于 2010-08-13T08:47:56.060 に答える
0

receive メソッドのコンテキストを使用してパワー マネージャーを取得します。これはインテントの送信者のコンテキストだと思うので、機能するアプリのコンテキストを使用します。

于 2010-08-13T08:00:30.467 に答える