私はKEYCODE_POWERを使用して、ルート化された電話の電源をオン/オフしています。以下のコマンドは、画面のオンとオフの両方で使用されます。
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 );
2番目の方法:
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
wl.acquire();
adbシェルの入力キーイベント26
26-デバイスのキーイベントコードの電源ボタンです。
あなたはリンクでより多くのコマンドを見つけることができます: http://adbshell.com/commands
画面のON/OFFを制御するスクリプトを書くことができます。以下はサンプルスクリプトコードです。
result="$(adb Shell dumpsys input_method | grep -c "mScreenOn=true")"
if [ "$result" == 1 ]; then
echo "Screen is already on."
else
echo "Turning screen on."
adb Shell input keyevent 26
fi