醒来后的Android与利用亚行或者Eclipse(只是调试前)?(Wake up Android

2019-07-19 15:11发布

如何唤醒的Android与利用亚行 - 我想调试应用程序的每个新版本之前醒来(好像睡着了一样)的Android终端。

典型的流程是:1。我在Eclipse中的一些变化。 2.同时屏幕熄灭与否。 3.我运行“调试”,想迫使屏幕醒来。

我发现了“电源键”仿真的方法,但它并没有打开它,而是切换电源状态。 我不想额外的代码添加到我的应用程序。 什么其他的方法做这样简单的工作,请大家帮忙。

Answer 1:

adb shell input keyevent KEYCODE_WAKEUP

如上所述这里 ,这会唤醒器件。 行为有点像KEYCODE_POWER但如果该设备已经醒了就没有效果。

要切换休眠/唤醒一个命令就可以发出

adb shell input keyevent KEYCODE_POWER


Answer 2:

只需使用:

adb shell input keyevent 26


Answer 3:

以下是我想出了:

adb shell dumpsys power | grep "mScreenOn=true" | xargs -0 test -z && adb shell input keyevent 26

这将首先检查,看看是否在屏幕上。 如果不是,它将模拟电源键,这将打开设备的屏幕上。



Answer 4:

您可以通过亚行检查设备的当前电源状态(包括显示器) dumpsys power命令,发送功率按键下压事件只有当显示器关闭。 在简单的解决方案将在开发人员选项被完全禁止显示超时“同时连接到USB”。



Answer 5:

你还可以添加以下标志您onCreate()在您的主要活动:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

这样,当它被装载到Eclipse中,通过该装置设备要醒来。



Answer 6:

如果执行adb shell input keyevent KEYCODE_POWER ,结果被Killed ,你应使用执行root用户su前。

睡眠: (adb shell) input keyevent KEYCODE_SLEEP

唤醒: (adb shell) input keyevent KEYCODE_WAKEUP

切换: (adb shell) input keyevent KEYCODE_POWER



Answer 7:

对于Windows和Eclipse,你可以使用.bat文件:

@ECHO OFF
setlocal
for /f "delims= tokens=1*" %%a in ('adb shell dumpsys power ^| findstr.exe "mScreenOn="') DO (
for /f "delims== tokens=2*" %%S in ("%%a") do (
if "%%S" == "false" (goto move1) else (goto move2)
)
)

:move1
adb shell input keyevent 26
goto end

:move2
goto end

:end
exit

它会检查,如果屏幕处于关闭状态,切换电源状态。 要使用Eclipse使用该bat文件应作为“外部工具”(只需填写的路径,.bat)并将其链接到项目中它的属性(建设者 - 导入 - )。



Answer 8:

我用下面的唤醒用于自动化测试的远程设备。 如果屏幕不亮,那么它将按电源按钮,然后按菜单按钮。

(
  cd ${platform-tools};
  ./adb shell dumpsys power | grep -i 'SCREEN_ON' >/dev/null;
  if [ $? -eq 0 ]; then
    echo "Screen is on...";
  else
    echo "Pressing buttons to wake-up...";
    # http://developer.android.com/reference/android/view/KeyEvent.html
    ./adb shell input keyevent 26; # Power
    ./adb shell input keyevent 82; # Menu
    echo "Pausing for state to settle...";
    sleep 1;
    ./adb shell dumpsys power | grep -i 'SCREEN_ON';
  fi;
  echo '---';
  ./adb shell dumpsys power | grep -i 'SCREEN'
)


Answer 9:

我知道这是一个什么样的OP请求相反的,但我想指出的“真正睡着”了其他读者的定义:如果亚行有效,则该设备不是真正睡着了,因为USB是和命令提示运行(亚行是去壳怎么回事工作?)。 当完全睡着了,只有物理电源按钮将唤醒它(除非其它按钮被选择为在BSP唤醒源)。 我的项目吸引约120毫安与屏幕关闭,但在睡眠模式下仅23毫安(断开USB连接线)。 “亚行外壳输入的keyEvent 26”在此模式下不起作用。 同样没有串行控制台。 我测试夹具确实有进入电池和外部电源线分开。 我可以切换电源线(与连接的电池)将其唤醒。 我也有特异性断开USB用于测试的睡眠部分的切换USB集线器。

我希望这可以给别人一些帮助。



文章来源: Wake up Android with use adb or Eclipse (just before debug)?