1

私のアプリはウェイクロックを取得しますが、アクティビティからデバイスをウェイクアップできません

これが私のコードです:

public void onCreate(){
    super.onCreate();
    //acquire wakelock logic here
    new Timer().schedule(new TimerTask() {
        @Override
        public void run() {
            mHandler.obtainMessage().sendToTarget();
        }
    }, 30000);
.....
}
public Handler mHandler = new Handler() {
    public void handleMessage(Message msg) {
        turnScreenOn();
    }
}

private void turnScreenOn() {
    Log.i("MainActivity", "Turn screen on");
    getWindow().addFlags(
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
                    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
                    WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
    );
}

ログでは、turnScreenOn が実行されていることがわかりますが、画面はまだオフになっています。onCreate() からこのメソッドを実行し、Service から Activity を実行すると、すべて問題ありませんが、Activity から実行したいと考えています。これが禁止されているという情報は見つかりません。ログにエラーはありません。

サービスから開始せずにアクティビティ/アプリケーションを起動することは可能ですか? それが不可能な場合 - どこかに文書化されていますか?

前もって感謝します

4

1 に答える 1