2011-07-21 23 views
3

**表示をオフにしようとしています。あなたがこれを行うためのより良い方法を持っている場合は、それを提案してください:)画面を復元するときに空白の画面が表示されるAndroid

を私は/表示をオン・オフする

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

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

を使用しています。画面をオンにすると、バックライトがオンの空白の画面が表示されます。

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

+0

実際に最後の命令でバックライトをオンにするため、以前表示されたビューを再描画してみてください。無効化してみてください(可能な場合) –

+0

少し明確にしてもよろしいですか?グーグルで再描画を試みましたが、何も明らかになっていませんでした:/ – thegreyspot

+0

最後に行った指示は、ディスプレイをオンにすることです。さて、私たちは、バックライトをオンにするだけで、画面上の白いピクセルだけを表示すると仮定します。私が言うことは、表示したいビューを再描画/無効化することです。つまり、白いピクセルが置き換えられます。 –

答えて

0

Screen brightnessの範囲は0〜1ですが、使用している-1は「好ましい」明るさです。最初に1を使って試してみてください。それがうまくいくかどうかは-1で分かります。マイナーチェンジものの

+0

ええ、私はすでにこれを試しました、同じ結果 – thegreyspot

+0

ああ。おそらく私は今日後で自分自身を試してみるでしょう、これを行う方法が分かりやすいでしょう(^ _〜) – Izkata

+0

あなたは同じ結果を持っているかどうかを知ることは興味深いでしょう: – thegreyspot

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); 

また、あなたはpowermanagerのwakelockとの電話をオンに試みることができる:

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(); 

そして、それは「doesnの場合

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(); 
1

これを有効にする最良の方法は、PowerManager.goToSleep(時間)です。

デバイスをスリープさせる時間を制御できます(希望する場合)。PowerManager.isScreenOn()を使用して、電源が再びオンになっているかどうかを判断することもできます。

は、あなたがまだの場合は...セットアップに非常に簡単WakeLockを持つことになりますちょうど

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

、あなたがpowerManager.goToSleep

EDIT

メイクを使用することができるから操作を行います必ずWakeLockをリリースし、あなたのonPauseメソッドとonResumeメソッドでそれらを取得してください!

関連する問題