使用Xcode构建和运行iOS应用程序时,手机会变为清醒并运行应用程序。有没有办法唤醒和解锁Android手机(或平板电脑)屏幕,然后运行已安装的Android应用程序(Eclipse,Android Studio)?
答案 0 :(得分:11)
一种解决方案:在您的活动类中设置以下标志:
if (BuildConfig.DEBUG) {
// These flags cause the device screen to turn on (and bypass screen guard if possible) when launching.
// This makes it easy for developers to test the app launch without needing to turn on the device
// each time and without needing to enable the "Stay awake" option.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
}
这些标志将:
通过在基本活动中设置这些标记,即使设备在运行时已关闭和/或锁定,您也可以继续使用您的应用程序。如果您尝试离开应用程序的过程(即,点击主页按钮或切换到另一个应用程序),将出现锁定屏幕,您必须手动解锁才能继续使用该设备。 / p>
警告:这只应在开发/调试应用程序时使用,因此我建议保留if (BuildConfig.DEBUG)
检查,就像在此示例中一样 < / p>
答案 1 :(得分:2)
更好,最简单的解决方案是使用屏幕永远不会消失的选项(在开发部分)我的名字是&#34;保持清醒&#34;。此选项可防止在连接USB电缆时手机被锁定。
答案 2 :(得分:0)
您无法解锁并唤醒手机,因为这不会非常安全,但您可以在开发者选项中启用“保持清醒”。
答案 3 :(得分:0)
另一种方法是编写一个脚本,该脚本在应用运行之前运行并解锁设备。这不需要更改应用程序代码,也不会更改可能具有安全隐患的屏幕超时。 您可以找到完整的设置 here
#!/bin/bash
# When a device is attached there will be atleast 3 lines -> heading, device details, an empty new line
if adb devices | wc -l | grep "3"; then
# Check if device locked, this may differ on some OEMs
if adb shell dumpsys window | grep "mInputRestricted=true"; then
echo "Device is Locked"
adb shell input keyevent KEYCODE_WAKEUP # wakeup device
adb shell input touchscreen swipe 530 1420 530 1120 # swipe up gesture
adb shell input text "000000" # <- Change to the your device PIN/Password
#adb shell input keyevent 66 # simulate press enter, if your keyguard requires it
else
echo "Device already unLocked"
fi
# 2 = Stay awake on USB, 0 = reset
adb shell settings put global stay_on_while_plugged_in 2
#adb shell settings put system screen_brightness 700
adb shell input keyevent KEYCODE_WAKEUP
adb shell input touchscreen tap 0 0 # this will wake up the screen and won't have any unwanted touches
else
echo "There should be only one device connected at a time"
fi
return 0