2014-10-05 20 views
5

Tôi muốn gửi "CTRL + W" tới Chrome dành cho Android để đóng tab hoạt động. Tôi đã thử rất nhiều thứ nhưng không thành công để đạt được nó từ thiết bị đầu cuối. (Nếu tôi kết nối Bàn phím USB với OTG, tôi có thể đóng tab bằng CTRL + W)Mô phỏng sự kết hợp của các lần nhấn phím từ thiết bị đầu cuối ADB

Trước hết tôi không muốn viết ứng dụng cho điều này, tôi chỉ muốn lệnh shell sử dụng nó từ Tasker.

Tôi đọc ở đâu đó rằng để đạt được điều này (Ctrl + W bấm phím), tôi có để mô phỏng ép chính như thế này:

Xuống CTRL
Xuống W
Up W
Up CTRL

Và để đạt được điều này từ thiết bị đầu cuối, có vẻ như tôi phải sử dụng "sendevent".

Tôi có thể mô phỏng tất cả các phím bấm phần cứng bằng "gửi" nhưng không thể mô phỏng các phím thông thường bằng phím đó.

Ví dụ, để lên, xuống để phím POWER:

sendevent /dev/input/event1 1 116 1 
sendevent /dev/input/event1 0 0 0 
sendevent /dev/input/event1 1 116 0 
sendevent /dev/input/event1 0 0 0 

tôi sử dụng lệnh này, nhưng tôi không thể sử dụng lệnh này để gửi các phím bình thường. (ví dụ: a, b, c v.v.)

Sự kiện1 là các khóa gpio, vì vậy tôi đang sử dụng nó. Và tất cả các sự kiện đầu vào khác là cảm biến và một là trình điều khiển sạc. (Max77693-muic)

Đầu ra của "getevent -p" nói rằng:

add device 1: /dev/input/event9 
    name:  "compass_sensor" 
    events: 
    REL (0002): 0000 0001 0002 0003 0004 0005 0006 0007 
       0008 0009 
    input props: 
    <none> 
add device 2: /dev/input/event6 
    name:  "barometer_sensor" 
    events: 
    REL (0002): 0000 0001 0002 
    input props: 
    <none> 
add device 3: /dev/input/event5 
    name:  "light_sensor" 
    events: 
    REL (0002): 0000 0001 0002 0009 
    input props: 
    <none> 
add device 4: /dev/input/event4 
    name:  "proximity_sensor" 
    events: 
    ABS (0003): 0019 : value 1, min 0, max 1, fuzz 0, flat 0, resolution 0 
    input props: 
    <none> 
add device 5: /dev/input/event3 
    name:  "gyro_sensor" 
    events: 
    REL (0002): 0003 0004 0005 
    input props: 
    <none> 
could not get driver version for /dev/input/mice, Not a typewriter 
add device 6: /dev/input/event7 
    name:  "Midas_WM1811 Midas Jack" 
    events: 
    KEY (0001): 0072 0073 00e2 
    SW (0005): 0002 0004 
    input props: 
    <none> 
add device 7: /dev/input/event1 
    name:  "gpio-keys" 
    events: 
    KEY (0001): 0072 0073 0074 00ac 
    input props: 
    <none> 
add device 8: /dev/input/event0 
    name:  "max77693-muic" 
    events: 
    KEY (0001): 0072 0073 00a3 00a4 00a5 
    input props: 
    <none> 
add device 9: /dev/input/event8 
    name:  "sec_touchkey" 
    events: 
    KEY (0001): 008b 009e 
    LED (0011): 0008 
    input props: 
    <none> 
add device 10: /dev/input/event2 
    name:  "sec_touchscreen" 
    events: 
    ABS (0003): 002f : value 0, min 0, max 9, fuzz 0, flat 0, resolution 0 
       0030 : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0 
       0031 : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0 
       0032 : value 0, min 0, max 30, fuzz 0, flat 0, resolution 0 
       0035 : value 0, min 0, max 719, fuzz 0, flat 0, resolution 0 
       0036 : value 0, min 0, max 1279, fuzz 0, flat 0, resolution 0 
       0039 : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0 
       003c : value 0, min -90, max 90, fuzz 0, flat 0, resolution 0 
       003d : value 0, min 0, max 1, fuzz 0, flat 0, resolution 0 
    input props: 
    INPUT_PROP_DIRECT 

Cũng gpio-phím bố trí tập tin của tôi "/system/usr/keylayout/gpio-keys.kl" như này:

key 115 VOLUME_UP   WAKE 
key 114 VOLUME_DOWN  WAKE 
key 116 POWER    WAKE 
key 172 HOME    WAKE 

tôi có thể gửi tất cả keyevents bình thường với:

"input keyevent KEYCODE_X" 

và gửi nhiều hơn một:

"input keyevent KEYCODE_X KEYCODE_Y" 

Bạn nên nghĩ rằng nó có thể làm việc như thế này:

"input keyevent KEYCODE_CTRL_LEFT KEYCODE W" 

nhưng keyevent xuống và lên immediatly và tôi không thể sử dụng nó để gửi CTRL + W kết hợp.

Tôi biết, câu trả lời phải là "gửi". Nhưng tôi không thể tìm thấy.

Tôi cũng đã cố gắng để thêm một số phím giả vào file bố trí chủ chốt như thế này:

key 115 VOLUME_UP   WAKE 
key 114 VOLUME_DOWN  WAKE 
key 116 POWER    WAKE 
key 172 HOME    WAKE 
key 19 Q 

tôi khởi động lại điện thoại, sau đó cố gắng:

sendevent /dev/input/event1 1 19 1 
sendevent /dev/input/event1 0 0 0 
sendevent /dev/input/event1 1 19 0 
sendevent /dev/input/event1 0 0 0 

Nhưng nó không bao giờ viết "Q" vào bất kỳ hộp văn bản nào.

Xin hãy trợ giúp, cảm ơn sự giúp đỡ của bạn.

Trả lời

2

Oh YES !! Tôi không biết tại sao nhưng bất cứ khi nào tôi cảm thấy bị mắc kẹt tôi đến stackoverflow và ngay sau khi tôi bắt đầu viết các câu hỏi bằng cách nào đó tôi tìm ra câu trả lời ... xD Anyways, tôi đã có thể làm điều đó bằng cách làm theo thủ tục:

  1. tới/system/usr/keylayout/
  2. Trong trường hợp của tôi đã không có gpio-phím, anyways mở Generic.kl
  3. Nó có tất cả các mã phím bạn sẽ cần phải mô phỏng bất cứ điều gì ... chẳng hạn như cho CTRL_RIGHT mã phím là 97 và cho mã phím W là 17
  4. Thats tất cả những gì bạn cần, bây giờ mở tasker -> New task -> Add wait 5 sec -> Chạy shell: input keyevent 97 input keyevent 17

Bây giờ hãy chạy lệnh và mở nhanh chrome, thì đấy! trong 5 giây, bạn sẽ thấy tab của mình biến mất!

Hy vọng rằng sẽ giúp tất cả những ưu Tasker tương lai;)

Kudos ...

+1

Giải pháp đến sau hai năm, cảm ơn bạn. Tôi đã thử và nó hoạt động rất tốt. – Yusuf

0

Phần events trong getevent -p danh sách đầu ra tất cả chấp nhận mã chủ chốt:

add device 7: /dev/input/event1 
    name:  "gpio-keys" 
    events: 
    KEY (0001): 0072 0073 0074 00ac 

ví dụ VOLUME_UP (0x73), VOLUME_DOWN (0x72), POWER (0x74) và HOME (0xAC) trong trường hợp /dev/input/event1. Mọi thứ khác được lọc bởi trình điều khiển đầu vào hạt nhân Linux rất lâu trước khi nó đạt đến khung công tác Android (nơi mà các tệp bố trí bạn đã sửa đổi được sử dụng)

+0

Cảm ơn trả lời của bạn. Vì vậy, không thể mô phỏng sự kết hợp của các máy ép chính từ thiết bị đầu cuối ADB? – Yusuf

+0

Có thể. Tất cả tôi nói rằng bạn cần phải thực hiện thay đổi cấu hình bắt đầu trên một mức độ thấp hơn nhiều (trình điều khiển nhân) hơn bạn đã cố gắng cho đến nay. –

+0

Một số người hãy chuyển nó sang người đam mê android! – Abhioxic

Các vấn đề liên quan