私のアプリケーションでは、電源ボタンを押してアクティビティを押してから別のアクティビティを表示する必要があります。私は既に電源ボタンを押さえて、それが押されたときに新しいアクティビティを表示することができました。 私は、BroadcastReceiverを使用してパワープレスイベントをフックします。電源ボタンが押されたとき、私はロックされてから画面を防止するために、私の活動に次のフラグを追加しました:電源ボタン押し続ける
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);//prevent phone from being locked
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); //I am not sure it works.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);//turns the screen on
を私はパワープレスをキャッチし、ロックアウトされずに活性を示すことができますが、画面がオフになります約1秒間、自動的にオンに戻り、それは私が本当に望むものではありません。 ユーザーが電源ボタンを押したときに画面をオンにできますか?
は私がdispatchkeyeventことによって電力を捕まえることができませんでしたが、私は、このことによってそれをキャッチすることができます:
screenoff = new BroadcastReceiver()
public static final String Screenoff = "android.intent.action.SCREEN_OFF";
@Override
public void onReceive(Context context, Intent intent) {
if (!intent.getAction().equals(Screenoff)) {
//code goes here return;
return;
}
};
IntentFilter offfilter = new IntentFilter (Intent.ACTION_SCREEN_OFF);
registerReceiver(screenoff, offfilter);
の問題は、約1秒のための画面をオフにします。 なぜこれが起こり、どのように修正できるのですか?
おかげで、 ホセイン
私はすでにbroadcastreceiverでイベントをキャッチしていましたが、1秒ほど画面が消えてしまいました。ユーザーが電源を押しても画面をオンにする方法はありますか?私はまた、 'getWindow()。addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);'しかし、私も私を助けなかった。 – Hossein