2016-12-26 403 views
4

KEYCODE_POWERを使用して、根付いている電話をオン/オフしています。ベローコマンドは、スクリーンのオンとオフの両方で使用されます。adbコマンドで画面をオン/オフするにはどうすればよいですか?

adb shell input keyevent KEYCODE_POWER 

ただし、私はそれを別々のケースで使いたいと思います:電源を入れて電源を切ってください。私は2つの機能を持っています:機能をオン/オフします。画面がオフになっていて、電源をオンにすると、画面がオンになります。画面が既にオンになっている場合、オン機能は何もしません。それ以外の場合は、画面がオンになっている場合、私はターンオフ機能を呼び出し、オフになります。

画面の状態を確認しようとしましたが、うまく機能しません。実際には、画面状態の更新は、電話の処理と比べて非常に遅いです。私も他の方法を使用していますが、これらの方法は眠らずに画面を起床させます。

final Window win = getWindow(); 
    win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
      WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
      WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | 
      WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | 
      WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON); 

第二の方法は:

PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag"); 
wl.acquire(); 
+0

可能な重複http://stackoverflow.com/questions/35275828/is:

あなたは、リンクすることで、よりコマンドを見つけることができます - もし - アンドロイドデバイスの画面がロックされているかどうかを確認する) –

+0

* Search *を使用してください。このテーマはここで何度も議論されてきました。 –

答えて

0

あなたはinput_methodファイルを読むことができます - adb shell dumpsys input_method
OSのバージョンが4.xまでの場合は、mScreenOnフィールドの値を検索する必要があります。
5以上であれば、mInteractiveまたはmActiveを探してください。

+0

詳細を表示できます – user8264

+0

'adb shell dumpsys input_method | grep mScreenOn'は、画面の状態に応じて 'true'または' false'の文字列を返します。あなたのデバイスはrootであると言っているので、 'grep'がなければ' busybox'をインストールすることができます。 – TDG

7

ADBシェル入力たKeyEvent 26

26 - デバイス上にKeyEventコード電源ボタンです。 http://adbshell.com/commands

[?のAndroidデバイスの画面は、ADB経由でロックされているかどうかを確認する方法がある(の
+0

これもオフです.... – user8264

+0

私はコマンドレスポンスを送ることができますか? –

+0

26はパワーアクションです。画面がオンで、電源ボタンを押したときに何が起きるかを考えることができます。 – user8264

関連する問題