2013-01-10 51 views
3

adb shell input keyevent可以模擬某些關鍵事件。也有修飾鍵像SHIFT_LEFTALT_RIGHT模擬兩個ade外殼用於ALT,SHIFT等keyevents

我想模擬兩個鍵,例如SHIFT + A,但

adb shell input keyevent SHIFT_LEFT; keyevent A 

結果只在屏幕上簡單的a

+1

爲少校,你可以輸入文字「A」 – njzk2

+0

@njz K2我知道,這只是一個例子。我真正的符號被認爲是Unicode字符。 – Mahoni

回答

4

如果需要移+ A,那麼你將不得不做以下序列

Press shift 
Press A 
Release A 
Release shift 

這可以通過使用

命令格式來實現:的SendEvent設備類型碼值

[command]  [device]    [type] [code] [value] 
sendevent /dev/input/event0 1   229  1 

/dev/input/event0是將其發送到的設備

[type] 1 is unkn流,我(也許對設備的物理按鈕的代碼)

[代碼] 229是仿真器的MENU按鈕

[值] 1是KEYDOWN或按下(對於KEYUP或最多使用0)

我寫一個批處理文件發送事件到設備象下面這樣:

adb -s emulator-5554 shell sendevent /dev/input/event0 1 229 1 
adb -s emulator-5554 shell sendevent /dev/input/event0 1 229 0 

Ref

+0

**我有** [此](https://gist.githubusercontent.com/mahendranv/0958a2cbda303191c507/raw/22c6443d1cb1d1ebd03656e3ee9b030b10d82cb7/CTRL+N)** Ctrl + N代碼段無效。任何想法 ? –

+0

你打算做什麼與Ctrl *你也得到了你的Android設備上的CTRL。如果是這樣,你可能想編寫程序,並獲得android設備上的實際密鑰。 –

+0

在我的應用程序中,我使用了一組快捷鍵Ctrl + N,Ctrl + C也驗證了鍵碼是否正確。 –