如何在root用户设备上设置屏幕?

时间:2014-09-15 04:46:49

标签: android

我有一个root用户设备。我希望在预定的时间关闭它。

如何以编程方式设置屏幕? 我们可以使用Linux命令吗?

感谢。

3 个答案:

答案 0 :(得分:5)

您可以使用adb shell input keyevent

用法:

adb shell input keyevent [--longpress] <key code number or name>

要关闭屏幕,请使用键码

26 -->  "KEYCODE_POWER"`

从提示符处运行:

root@user:/$ adb shell input keyevent 26   

或者这个,

root@user:/$ adb shell input keyevent KEYCODE_POWER

从您的函数/方法运行以上命令: Execute ADB Command through Android Application

此过程也适用于非root设备。

完整的活动清单:See Here
设置亚行:See Here

答案 1 :(得分:0)

对于那些像我这样的问题:我在MTK设备上发现以下代码以关闭屏幕,因为Sub propercase_test() Dim LCRange As Range With Sheets("Profitability") LCLastRow = .Range("V" & .Rows.Count).End(xlUp).Row Set LCRange = Range("V" & LCLastRow) End With For Each Rng In Range(LCRange) Rng.Value = Application.WorksheetFunction.Proper(Rng.Value) Next Rng End Sub 在我的设备上不起作用:

  

adb shell输入keyevent 6

也将关闭设备屏幕。要打开设备屏幕,请使用keyevent 26

找出一个适用于您设备的按键事件的最佳方法是使用一个小型bash脚本,如下所示:

#!/bin/bash
while
do
    count=$(( $count+1 ))
    input keyevent $count
    echo "input keyevent $count"
    sleep 1
done

答案 2 :(得分:0)

sleeping="$(adb shell dumpsys power | grep 'mWakefulness=')"
screen="$(adb shell dumpsys nfc| grep 'mScreenState=')"

case "$screen" in
  "mScreenState=OFF")
     echo "* Device is not unlocked."
                 ;;
  "mScreenState=ON_LOCKED")
     echo "* Device is not unlocked."
     sleep 0
     exit ;;
   "mScreenState=ON_UNLOCKED")
       echo "* Locking screen.."
       adb shell input keyevent 26
       echo "* Screen turned off"
       exit
esac

echo -e "$basename$0: internal error -- can't lock screen since it's not unlocked"