2017-09-30 51 views
-1

我想讓我的耳機按鈕通過USB-C適配器工作,因爲我的手機非常時髦,而且沒有3.5mm插孔。Android:帶USB-C適配器的耳機按鈕

的按鈕工作:使用的應用程序 「的KeyEvent顯示」,我想通了

  • Vol+觸發器的 「linux鍵碼號碼」 114
  • Vol-觸發器的 「linux鍵碼號碼」 259
  • Play/Pause觸發器 「Linux的關鍵碼」 226

通過改變/system/usr/keylayout/Generic.kl

key 114 VOLUME_UP 
key 226 HEADSETHOOK 
key 259 VOLUME_DOWN 

我得到了耳機按鈕的預期行爲,但它干擾了手機上的常規按鈕。 這就是爲什麼我想創建一個設備特定的配置文件。爲此,我需要設備名稱或供應商和產品ID。 (如android documentation中所述)

我該怎麼做?

PS:應用程序「USB設備信息」沒有顯示任何連接的設備。 Here你可以找到cat /proc/bus/input/devices的輸出。應用程序「Under the Hood」的相關輸出:pastebin.com/kDeBNS0H

PPS:解決這個問題會給你帶來額外的業障,因爲解決方案將被輸入到LineageOS中,爲許多人解決問題!

+0

我嘗試了以下文件名(每次重新啓動):'Vendor_0000_Product_0003.kl','Vendor_0000_Product_0000.kl','Vendor_0001_Product_0001.kl',但沒有任何工作。 – FatTony

+2

Stack Overflow是編程和開發問題的網站。這個問題似乎與題目無關,因爲它不涉及編程或開發。請參閱幫助中心的[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic)。也許[超級用戶](http://superuser.com/)或[Unix&Linux堆棧交換](http://unix.stackexchange.com/)會是一個更好的地方。 – jww

+0

@jww:你說得對。儘管如此,我已經找到了答案,而我只是爲了記錄而發佈它。 – FatTony

回答

-1

使用keytest應用程序,我發現耳機(2)的設備ID與常規音量按鈕(7和3)的設備ID不同。 現在,我只需找出與設備ID對應的設備名稱即可。這是我沒有使用的終端模擬器:

$ su 
$ getevent 
add device 1: /dev/input/event7 
name: "msm8976-skun-snd-card Headset Jack" 
add device 2: /dev/input/event6 
name: "msm8976-skun-snd-card Button Jack" 
add device 3: /dev/input/event4 
name: "qpnp_pon" 
add device 4: /dev/input/event3 
name: "qwerty" 
could not get driver version for /dev/input/mouse1, Not a typewriter 
add device 5: /dev/input/event2 
name: "hbtp_vm" 
add device 6: /dev/input/event1 
name: "input_mt_wrapper" 
could not get driver version for /dev/input/mice, Not a typewriter 
add device 7: /dev/input/event5 
name: "gpio-keys" 
could not get driver version for /dev/input/mouse0, Not a typewriter 
add device 8: /dev/input/event0 
name: "synaptics_dsx_s2" 

按照documentation,比0-9a-zA-Z-其他所有字符都被替換_。因此,我創建了一個新的文件:/system/usr/keylayout/msm8976-skun-snd-card_Button_Jack.kl,內容如下:

# Configuration file for LeEco Le 2 headphone buttons 
key 114 VOLUME_UP 
key 226 HEADSETHOOK 
key 259 VOLUME_DOWN 

重新啓動後,我得到了預期的行爲!