对多按钮有线耳机的反应
Posted
技术标签:
【中文标题】对多按钮有线耳机的反应【英文标题】:Reacting to multi-buttons wired headphones 【发布时间】:2012-04-24 07:34:52 【问题描述】:我正在使用插入 Galaxy Nexus (ICS 4.0.2) 的一对 a-JAYS Four 耳机(有线遥控器/麦克风上有 3 个按钮)进行一些实验。
我的问题是我编写的测试应用程序仅“识别”了中间按钮,即同时触发 Intent.ACTION_MEDIA_BUTTON 和/或 Activity.onKeyDown 回调按下时带有 KeyCode 79。
按下另外两个按钮不会触发前面的任何方法。有关信息,这些耳机及其 3 个按钮适用于 Apple iPhone 和 Apple 电脑(至少 MacBookPro 2011),正如包装盒上所宣传的那样......
首先,我认为 android 或我的设备无法处理有线插孔遥控器上的多个按钮(即使这听起来很奇怪......),但后来我尝试了一副 HTC 的耳机(即将推出的耳机)使用他们的 Desire 设备之一)具有 3 个按钮。中间按钮的反应方式与我的 a-JAYS 相同,但另外两个按钮也可以分别识别为 KeyCodes 87 和 88,播放上一个 和 播放下一个媒体 键。
因此,似乎设备或 Android 的低层根本无法捕捉某些耳机按钮信号:/(至少那些不是 87 和 88)
知道如何让 Android 能够识别来自 Apple 兼容耳机等耳机的其他按钮/信号吗?这是否意味着为 ICS 编写的低级别驱动程序或者我错过了一些非常明显的东西?
任何帮助将不胜感激。如果需要,可以发布我的测试应用代码。
干杯
【问题讨论】:
虽然我无法回答这个问题,但我可以说 Nexus One 附带的耳机有三个按钮,一个是播放/暂停切换按钮,另一个是音量。当姜饼被推出时,我的特别停止工作(不确定耳机是否坏了或有软件更改)。无论如何,我的意思是操作系统应该能够处理按钮。 希望我能找到如何调整软件以使这些按钮工作...谢谢 【参考方案1】:我认为这是硬件问题(至少在 Apple 耳机方面)。如果您查看那些插头上的插头,它们有四个触点,而不是正常的三个触点。我敢打赌他们会通过那个额外的联系来运行他们的按钮信号。 AFAIK,没有与插孔匹配的 Android 设备。
所以,最终我不相信你可以让带按钮的苹果耳机适用于安卓系统(就按钮功能而言)。
【讨论】:
实际上,Apple 和 HTC 耳机的插头上都有 4 个触点,而且我不相信 2 个额外的按钮会使用 1 个额外的触点,而中间的按钮会与普通的按钮一起使用。如果是硬件问题,肯定不是千斤顶的形状问题。但感谢您的意见!【参考方案2】:将耳机插入插孔时,您必须按住中间按钮。这将使麦克风在 Android 上工作。它适用于我的 HTC Thunderbolt。
【讨论】:
嗯,在我的 a-JAYS 上试了一下,但它在我的 Galaxy Nexus 上不起作用。此外,按照你的描述做实际上会阻止按钮工作,直到我拔掉它并在不触摸按钮的情况下重新插入。无论如何感谢您的提示。您能说出您在实验中使用的耳机吗?【参考方案3】:我必须强调,我不是这个主题的专家,但从我迄今为止阅读和尝试的内容来看,我得出的结论是,让 Android 手机响应 iPhone 耳机的音量按钮并非不可能,但出于某种原因性能很差/滞后。
有些应用程序试图发挥作用,但它们对于日常使用来说太不可靠了。我想问题是触发信号可能必须在比大多数常规应用程序访问权限更低的操作系统级别上实现。
解决方案可能是某种 ROM 模组...
如果您能实现这一点,我相信这对 Android 社区来说将是一件大事,对您来说也许是一笔不错的生意。
亲切的问候,你的匈牙利同胞 格尔格
【讨论】:
【参考方案4】:目前无法通过 android 框架的软件识别来自音量控制按钮的信号/电阻(1.525-1.495 V 用于降低音量,1.619-1.587 V 用于提高音量)。我认为这与 Apple 在指定音量控制方面拥有专利有关,因此 Google 不会向开发人员发布该框架如何通过耳机插孔上的第四个连接器识别特定信号。耳机上的中心/麦克风/动作按钮通常可以工作,它缩短了从 ~2V 到 ~0V 的路径,Apple 不拥有这方面的专利。如果有人能自己弄清楚如何与输入进行交互,那将是巨大的。我很想学习应用程序开发并找到解决方法。
【讨论】:
有什么方法可以从代码中读取按钮释放的电压?【参考方案5】:您必须始终保持中间位置才能使其起作用。如果你放手而不播放音乐,它会说不支持配件,但如果你播放音乐然后放手,它只会停止音乐,直到你再次按住它。也许用胶带把中间的按钮关得很紧?
【讨论】:
【参考方案6】:如果您查看四个触点、tip-ring-ring-sleeve (TRRS),并知道大多数耳机组是:
提示:左 环 1:右 环 2:接地 袖子:麦克风(1/4 英寸专业音频立体声插头称为 TRS - tip-ring-sleeve)
虽然有些会反转接地和麦克风触点,但就设备如何识别您拥有的不同按钮而言,您需要知道的是这些按钮在接地和麦克风触点之间短路。 (在 IR 之前,VCR 的老式有线遥控器使用电阻来实现不同的功能)
现在你要弄清楚发生了什么的作业是:
-
为每个按钮测量环 2 和套筒之间的电阻
找出是瞬间短路还是恒定
如果您有其他可以正常工作的耳机/麦克风设备,也请测量这些阻抗(电阻)
我不知道你想怎么做,但你可以购买具有正确阻抗的电阻器,以便从 Android 设备中获得你想要的功能,问题是,你知道设备有哪些功能吗?以及触发该功能的那些阻抗是什么。
daniel@destinypatrolsoftware.com
【讨论】:
【参考方案7】:问题看起来更复杂:http://david.carne.ca/shuffle_hax/shuffle_remote.html。
【讨论】:
以上是关于对多按钮有线耳机的反应的主要内容,如果未能解决你的问题,请参考以下文章