在Android中创建"中间人"耳机按钮控制器

ror*_*itt 6 android android-emulator

所有,

我已经找到了答案,但我没有得到任何确切的信息......这是我第一次写一个Android应用程序,所以请温柔:)

我对Android中最小的耳机支持感到非常沮丧 - 与iPhone不同,它本身似乎只支持一个按钮,因此无法控制耳机兼容性.此外,如果我正在听音乐并且有来电,操作系统会自动暂停音乐,但耳机按钮仍然只能用作媒体按钮 - 我无法用它来接听/结束通话.如果我通过屏幕接听电话并按下耳机按钮,音乐会再次开始,但通话继续...

我想创建一个"中间人"应用程序,可以选择按下耳机按钮(通过Keyevent.KEYCODE_HEADSETHOOK),然后可以确定是否执行默认的ACTION_MEDIA_BUTTON操作(在我选择的媒体播放器中切换播放/暂停)或者,如果有来电,请暂停音乐并接听电话(然后,再次按下时,结束通话并重新启动媒体播放器).甚至可以检查耳机按钮上的ACTION_MULTIPLE以指定不同的选项(ACTION_MEDIA_NEXT,ACTION_MEDIA_PREVIOUS等).也许还能够确定是否已经按下耳机上的不同按钮(如果耳机是例如花式iPhone耳机)并且将这些按钮按下"翻译"到适当的ACTION_MEDIA_*).如果操作系统无法区分不同按钮,这可能是不可能的.

显然,这样的应用程序必须以足够高的优先级接收意图,以便能够在当前媒体播放器获得广播之前中止广播.

我一直在修改各种各样的BroadcastReceiver类和意图过滤器等,但问题的一部分是Eclipse附带的bult-in Android模拟器似乎没有能力模拟用户插入耳机和/或随后单击耳机按钮.因此,每当我得到一些看起来很有前途的东西时,我必须把它放到我的实际手机上并尝试一下 - 耗费时间和麻烦.

然后3个问题:

  1. 我错过了一些显而易见的事实 - 这是一个真正的问题,如果是这样,它已经解决了吗?

  2. 如果它是一个问题,是否可以编写这样的中间人应用程序?

  3. 是否有其他Android模拟器可以检查与耳机相关的活动?

谢谢,

罗里

小智 1

i\xc2\xb4ve 已经编写了此类应用程序。它的名字就像这个主题的主题:耳机按钮控制器;-)

\n\n

http://www.androidpit.com/en/android/market/apps/app/com.kober.headset/Headset-Button-Controller

\n\n

干杯克里斯托夫

\n

  • 这不是问题的答案。 (5认同)