デバイスをスリープ状態にしたい、または画面をオフにしたい。調査したところ、次のトピックが見つかりました: Android で画面をオフにする
基本的には3つの方法がありますが、私は3つの問題を発見しました:
a) 選択肢 1:
PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
manager.goToSleep(int amountOfTime);
問題: FC を引き起こします。アクセス許可が必要だと読みDEVICE_POWER
ましたが、通常のアプリには付与できません。
b) 選択肢 2:
PowerManager manager = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Your Tag");
wl.acquire();
wl.release();
問題:これはうまくいきません。どうしてか分かりません。それは私に FC を与えませんが、無害です。
c) 選択肢 3:
WindowManager.LayoutParams params = getWindow().getAttributes();
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);
問題:動作させることはできますが、デバイスの電源を入れようとすると、戻りたくない、またはアプリが前面にある場合、ボタンを押した直後に自動的にスリープ状態になるなど、奇妙なことが起こります。これは、通常の解決策というよりも、ヒントまたは回避策のように見えます。
問題なく実行できるデバイスをスリープ状態にするか、画面をオフにする良い方法を誰か教えてもらえますか? このような単純な機能がそれを使用する良い方法を持っていない(または少なくとも十分に文書化されている)ことは私にはまれに思えます