3

**注意してください、私はディスプレイをオフにしようとしているだけです。これを行うためのより良い方法があれば、それを提案してください:)

私は使っている

params.screenBrightness = 0;
getWindow().setAttributes(params);

params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = -1;
getWindow().setAttributes(params);

ディスプレイのオン/オフを切り替えます。画面を再びオンにすると、バックライトがオンになっている空白の画面しか表示されません。

なぜこれが起こっているのですか?マイクありがとう

4

4 に答える 4

2

小さな変更ですが、次のように最後に「F」を付けてみてください。

params.screenBrightness = 0F;
getWindow().setAttributes(params);

それでも問題が解決しない場合は、画面をデフォルト設定に戻すことで画面を更新できる可能性があります。少し調べてみたところ、画面の更新に役立つ可能性のある次のコードが見つかりました。

this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

また、powermanagerwakelockを使用して電話をオンにしてみることができます。

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
// Wakes the screen on.
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP, AudioControlExtender.this.getClass().getName());
wl.acquire();

それでも問題が解決しない場合は、現在の方法で画面をオンにしてから、次の手順を実行します。

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
// Sets the screen on maximum brightness.
// This might fix the problem you are having with the screen brightness since
// the screen settings are changed.
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, AudioControlExtender.this.getClass().getName());
wl.acquire();
于 2011-07-28T01:55:07.060 に答える
1

これを機能させる最善の方法は、PowerManager.goToSleep(time); を使用することです。

そうすれば、(必要に応じて) デバイスをスリープ状態にする時間を制御できます。PowerManager.isScreenOn() を使用して、デバイスが再びオンになったかどうかを判断することもできます。

まだセットアップしていない場合は、WakeLock をセットアップする必要があります...非常に簡単です。

PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
    wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "GLGame");  

そこから powerManager.goToSleep を使用できます

編集

WakeLock を解放し、onPause および onResume メソッドで取得してください。

于 2011-07-30T17:42:59.067 に答える
1

ディスプレイをオフにしようとしている場合は、試しました
PowerManager.goToSleep()か? http://developer.android.com/reference/android/os/PowerManager.html#goToSleep(long )
で詳細を確認してください。

于 2011-07-29T14:06:52.617 に答える
0

画面の明るさの範囲は 0 から 1 で、使用している -1 は「優先」明るさ用です。最初に 1 を使用してみて、それが機能するかどうかを確認してください。

于 2011-07-24T03:23:44.327 に答える