6

関連するコードは次のとおりです。

 WindowManager.LayoutParams windowParams = getWindow().getAttributes();
 windowParams.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
 windowParams.screenBrightness = 0.0f;
 getWindow().setAttributes(windowParams);

また、screenBrightness を 0 (float ではなく整数) に設定してみました。また、スタック オーバーフローの回答で見つけた次の行も試しました。

this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

サイコロはありません。画面が暗くなりますが、オフになりません。上記のコードは、以前の Android バージョンでは機能していました。エミュレーターでテストして確認しました。画面を制御するための新しいメソッドが実装されましたか?

4

4 に答える 4

0

あなたがしていることがうまくいかない理由がわかりません。これは汚いハックですが、画面のタイムアウトを非常に短い時間に変更できるかもしれません。

android.provider.Settings.System.putInt(getContentResolver(),
        Settings.System.SCREEN_OFF_TIMEOUT, time);

time=300300ミリ秒と言ってください。

于 2013-06-27T17:21:39.187 に答える
0

コードに一貫性がないため、次の 2 つの関数を呼び出して画面をオフにしてください。

ドキュメントから:

 public void goToSleep (long time)

API レベル 1 で追加 デバイスを強制的にスリープ状態にします。

保持されているすべての wake lock をオーバーライドします。これは、電源キーを押して画面をオフにすると発生することです。DEVICE_POWER 権限が必要です。

 public void wakeUp (long time)

API レベル 17 で追加 デバイスを強制的にスリープから復帰させます。

デバイスが現在スリープ状態の場合はスリープ状態から復帰し、それ以外の場合は何もしません。これは、電源キーを押して画面をオンにすると発生することです。

DEVICE_POWER 権限が必要です。

于 2013-06-08T05:49:34.833 に答える