如何在已root的安卓设备上设置屏幕关闭?

3

我有一台已Root的安卓设备。我想在预定时间将其屏幕关闭。

如何在程序中设置屏幕关闭?是否可以使用Linux命令实现?

谢谢!

3个回答

7
您可以使用 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

从您的函数/方法运行上述命令: 通过Android应用程序执行ADB命令

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

完整事件列表:请参见此处
设置ADB:请参见此处


我是在程序中说的,也就是从应用内部。 - Utsav Gupta
你尝试过这里吗:https://dev59.com/omYr5IYBdhLWcg3wy9OA - Saurabh Meshram
有没有一种方法可以在没有root的情况下关闭屏幕,而且不锁定设备? - android developer

0

对于像我一样遇到同样问题的人:我在我的MTK设备上找到了以下代码来关闭屏幕,因为keyevent 26在我的设备上无法使用:

adb shell input keyevent 6

也可以关闭设备屏幕。要打开设备屏幕,您可以使用keyevent 26

查找适用于您的设备的哪个keyevent的最佳方法是使用类似于此的小型bash脚本:

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

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"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接