我想让我的耳机按钮通过USB-C适配器工作,因为我的手机非常时尚而且没有3.5毫米插孔。
按钮工作:使用应用程序“KeyEvent Display”,我想出了
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 :(得分:0)
使用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-9
,a-z
,A-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
重新启动后,我得到了预期的行为!