我正在使用一对 a-JAYS Four 耳机(其有线遥控器/麦克风上有3个按钮)插入Galaxy Nexus(ICS 4.0.2)进行一些实验。
我的问题是,我编写的测试应用只能识别中间按钮,即触发 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写作,或者我错过了一些非常明显的东西?
非常感谢任何帮助。如果需要,可以发布我的测试应用程序代码。
干杯
答案 0 :(得分:16)
音量控制按钮的信号/电阻(音量减小为1.525-1.495 V,音量增大为1.619-1.587 V)目前无法通过Android框架的软件识别。我相信这与Apple拥有指定音量控制专利有关,因此Google不会向开发人员发布框架如何通过耳机插孔上的第四个连接器识别特定信号。耳机上的中心/麦克风/动作按钮通常工作,它将路径从~2V短路到~0V,Apple没有专利。如果有人能够弄清楚如何与他们自己的输入进行交互,这将是巨大的。我很想学习应用程序开发并找到解决方法。
答案 1 :(得分:3)
答案 2 :(得分:2)
我必须强调的是,我不是这方面的专家,但从我到目前为止所阅读和尝试的内容我得出结论,让Android手机响应iPhone耳机的音量按钮并非不可能,但由于某种原因表现差/滞后。
有些应用试图发挥魔力,但它们对于日常使用来说太不可靠了。我想问题是触发信号可能必须在比大多数常规应用程序都可访问的操作系统级别更低的情况下实现。
解决方案可能是某种ROM模式......
如果你能实现这一点,我相信对于Android社区来说这将是一件大事,对你来说也许是一件好事。
亲切的问候,你的匈牙利同胞 Gergő
答案 3 :(得分:1)
在将耳机插入插孔的同时,您必须按住中间按钮。这将使麦克风在Android上运行。它适用于我的HTC Thunderbolt。
答案 4 :(得分:0)
我认为这是硬件问题(至少在Apple耳机方面)。如果你看那些插头,他们有四个联系人,而不是正常的三个。我愿意打赌他们通过额外的联系方式运行他们的按钮信号。 AFAIK,没有与之相匹配的Android设备。
所以,最终我不相信你可以制作带有按钮的苹果耳机适用于Android(就按钮功能而言)。
答案 5 :(得分:0)
你必须把整个时间都放在中间才能发挥作用。如果你放手而不是播放音乐,那就说不支持播音,但是如果你播放音乐然后放手,它就会停止音乐直到你再次握住它。也许用胶带将中间按钮拉得很紧?
答案 6 :(得分:0)
如果你看一下四个触点,尖端环形套筒(TRRS),并且知道MOST耳机套件是:
(1/4英寸专业音频立体声插头称为TRS - 尖端环套)
虽然有些人会颠倒地面和麦克风触点,但就设备如何识别您的不同按钮而言,您需要知道的是,这些按钮在地面和麦克风触点之间缩短了。 (在IR之前,老式WIRED遥控器用于VCR使用不同功能的阻力)
现在你的作业是找出正在发生的事情:
我不知道你想要得到什么,但是你可以购买具有正确阻抗的电阻器来获得你想要的Android设备功能,问题是,你知道设备的功能吗?那些阻碍这种功能的阻抗是什么。
daniel@destinypatrolsoftware.com