Android:带USB-C适配器的耳机按钮

时间:2017-09-30 11:43:49

标签: android linux button headphones adaptor

我想让我的耳机按钮通过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,为许多人解决问题!

1 个答案:

答案 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"

根据documentation0-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

重新启动后,我得到了预期的行为!