2013-09-08 6 views
7

私は画面をプログラム的にオフにしようとしています。アンドロイドでは、画面をプログラムでオフにするにはどうすればよいですか?

私が試してみました次の方法:

WindowManager.LayoutParams params = getWindow().getAttributes(); 
params.screenBrightness = 0; 
getWindow().setAttributes(params); 

以前に述べた方法は動作しません。

このしかし、動作します:

DevicePolicyManager mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); 

mDPM.lockNow(); 

これは動作しますが、電話が鳴っている、これはリンギングを停止する着信音が発​​生している間、私は私の画面をオフにしています。電源ボタンを押している場合と同じです。

まあ、DevicePolicyManagerメソッドを使わずに表示をオフにする必要があります。または、それをDevicePolicyManagerメソッドで設定しても、デバイスの呼び出しが中止されることはありません。

ありがとうございます!

答えて

1

スクリーンを切るために画面のタイムアウト時間を短縮する方が良い。このような :

Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 10); 

10は、あなた自身を設定することができ、10ミリ秒を意味します!

+0

これは、ウェイクロックがアクティブであるかのように機能しません。タイムアウトすることはありません。私が上で述べた 'DevicePolicyManager'メソッドはディスプレイをオフにする適切な方法です、私の状況では完全には機能しません。 – Seth

+0

しかし、彼はすべてのデバイスで動作しません。私の考えでは、最良の方法は[ここ](http://rdcworld-android.blogspot.in/2012/03/lock-phone-screen-programmtically.html)です。 – M410

+0

あなたが投稿したリンクはまさに​​私が言ったものです。あなたが何を言おうとしているのか分かりません。デバイスが2.2(API 8)以上であれば、 'DevicePolicyManager'と' mDPM.lockNow() 'を使って画面を消すことができます。 – Seth