2012-07-01 30 views
1

我正在寻找一种方法来使用ADB关闭键盘锁以自动执行某些任务。如何使用adb intent解雇android键盘锁

我想启动一个ACTIVITY(也许在android.app.KeyguardManager.KeyguardLock中调用公共方法disableKeyguard),因为我认为它可以在所有(或大多数)Android设备上工作,但我不确定语法。

我不想使用MonkeyRunner,因为它在所有设备上都不存在(或者可能是可调用的)。我也不能发送菜单键码(adb shell输入键码82),因为这并不能解除所有设备上的键盘锁。

目前我正在发送事件(低级别触摸事件),但是这需要针对每个设备进行自定义,因此这是一项耗时的任务。

有没有人有建议?

+0

为什么MonkeyRunner在所有设备上不可调用的?你能给出一个MonkeyRunner不可调用的设备的例子,或者你可以发布你用来调用它的代码吗? – someoneHuman

回答

1

“活动测试”文章有一个名为Unlocking the emulator or device的部分来解决这种情况。

总之,没有一种方法来直接与adb做,但使用disableKeyguard()不复杂(参见链接到上述文章中的三条线的示例代码)。你可以很容易地把一个小应用程序放在一起,但什么也不做,只能禁用键盘。然后,它只会是

adb install <apk> 
adb shell am start <package>/.<activity> 
# Whatever you need to automate 
adb uninstall <package> 

的问题(如果<apk><package>,并<activity>都指的是微小的应用程序,只需禁用键盘锁。)

+0

谢谢Darshan。不幸的是,在这种情况下部署应用程序并不是一个好的选择。 –

+0

你终于找到方法了吗? –