编译和运行项目时唤醒和解锁Android手机屏幕?

时间:2014-03-11 17:44:31

标签: android eclipse android-studio

使用Xcode构建和运行iOS应用程序时,手机会变为清醒并运行应用程序。有没有办法唤醒和解锁Android手机(或平板电脑)屏幕,然后运行已安装的Android应用程序(Eclipse,Android Studio)?

4 个答案:

答案 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);
    }

这些标志将:

  1. 开启屏幕
  2. 绕过锁屏
  3. 即使设备已锁定,也允许显示活动
  4. 通过在基本活动中设置这些标记,即使设备在运行时已关闭和/或锁定,您也可以继续使用您的应用程序。如果您尝试离开应用程序的过程(即,点击主页按钮或切换到另一个应用程序),将出现锁定屏幕,您必须手动解锁才能继续使用该设备。 / 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