2012-07-01 35 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

你終於找到方法了嗎? –