所有
我已经找到了答案,但我没有得到任何确切的信息......这是我第一次写一个Android应用程序,所以请保持温和:)
我对Android中最小的耳机支持感到非常沮丧 - 与iPhone,它本身似乎只支持单个按钮,因此没有音量控制的耳机兼容性。此外,如果我正在听音乐并且有来电,操作系统会自动暂停音乐,但耳机按钮仍然只能用作媒体按钮 - 我无法用它来接听/结束通话。如果我通过屏幕接听电话并按下耳机按钮,音乐会再次开始,但呼叫仍在继续......
我想创建一个“中间人”应用程序,可以选择已按下耳机按钮(通过Keyevent.KEYCODE_HEADSETHOOK),然后可以确定是否执行默认的ACTION_MEDIA_BUTTON操作(在我选择的情况下切换播放/暂停媒体播放器)或者,如果有来电,请暂停音乐并接听电话(然后,再次按下时,结束通话并重新启动媒体播放器)。甚至可以检查耳机按钮上的ACTION_MULTIPLE以指定不同的选项(ACTION_MEDIA_NEXT,ACTION_MEDIA_PREVIOUS等)。也许还能够确定是否已按下耳机上的不同按钮(如果耳机是例如花式iPhone耳机)并且将这些按钮按下“翻译”到适当的ACTION_MEDIA_ *)。如果操作系统显然不能区分不同的按钮,那么这可能是不可能的。
显然,这样的应用必须以足够高的优先级接收意图,以便能够在当前媒体播放器获得广播之前中止广播。
我一直在修改各种各样的BroadcastReceiver类和intent过滤器等,但问题的一部分是Eclipse附带的bult-in Android模拟器似乎没有能力模拟用户插入耳机和/或随后点击耳机按钮。因此,每当我得到一些看起来很有前途的东西时,我必须把它放到我的实际手机上并尝试一下 - 耗费时间和麻烦。
然后提出3个问题:
我错过了一些显而易见的事实 - 这是一个真正的问题,如果是的话,它已经解决了吗?
如果这是一个问题,是否可以编写这样的中间人应用程序?
谢谢,
罗
答案 0 :(得分:1)
我已经写完了这种应用程序。它被称为这个主题:耳机按钮控制器; - )
http://www.androidpit.com/en/android/market/apps/app/com.kober.headset/Headset-Button-Controller
干杯克里斯托夫