【问题标题】:Android: headphone buttons with USB-C adapterAndroid:带 USB-C 适配器的耳机按钮
【发布时间】:2018-03-12 03:49:16
【问题描述】:

我想让我的耳机按钮通过 USB-C 适配器工作,因为我的手机非常时髦和现代,它没有 3.5 毫米插孔。

按钮工作:使用应用程序“KeyEvent Display”,我发现

  • Vol+触发“linux key code number”114
  • Vol-触发“linux key code number”259
  • Play/Pause触发“linux key code number”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 中,为很多人解决问题!

【问题讨论】:

  • 我尝试了以下文件名(每次都重新启动):Vendor_0000_Product_0003.klVendor_0000_Product_0000.klVendor_0001_Product_0001.kl,但都没有成功。
  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地点。
  • @jww:你是对的。不过,我找到了答案,我发布它只是为了记录。
  • 如何对评论投反对票? :)
  • 哪条评论? jww 是合法的。 (为什么)你否决了我的问题和我的解决方案?

标签: android linux button headphones adaptor


【解决方案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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多