android - 在Android中创建 'middleman'耳机按钮 Controller

标签 android android-emulator

全部,

我已经搜索过这个问题的答案,但我没有得到任何确切的答案...这是我第一次编写 Android 应用程序,所以请保持温和:)

我对 Android 中对耳机的最低限度支持感到非常沮丧 - 与其他设备不同iPhone,它似乎只原生支持单按钮,因此耳机兼容性上没有音量控制。此外,如果我正在听音乐并且有电话打进来,操作系统会自动暂停音乐,但耳机按钮仍然只能用作媒体按钮——我不能用它来接听/挂断电话。如果我通过屏幕接听电话并按下耳机按钮,音乐会再次响起,但通话仍在继续...

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

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

我一直在尝试创建各种 BroadcastReceiver 类和 Intent 过滤器等,但部分问题是 Eclipse 附带的内置 Android 模拟器似乎无法模拟用户插入耳机和/或随后单击耳机按钮。因此,每当我得到一些看起来很有希望的东西时,我都必须将它放到我的实际手机上并试用 - 既费时又麻烦。

然后是 3 个问题:

  1. 我是否漏掉了一些明显的东西 - 这是一个真正的问题吗?如果是,是否已经解决了?

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

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

谢谢,

罗里

最佳答案

我已经编写过这类应用程序。它的名字就像这个主题的主题:耳机按钮 Controller ;-)

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

干杯克里斯托夫

关于android - 在Android中创建 'middleman'耳机按钮 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4787031/

相关文章:

android - 尝试对 LatLng 数组的距离求和

android - 是否可以通过编程方式检测是真实的还是虚拟的 Android 设备?

java - Android 2.2 (level 8) httpclient.execute 一致超时

android - 在 Android 2.2、2.3 上支持 H.264 AVC .mp4 的库?

android - 在phonegap中打开软键盘时,showkeyboard/hidekeyboard事件不会在ios 7上触发

java - onClickListeners 之间的变量重置为默认值

android - 使用 rngd 后,[hwrng] 继续最大化熵

flutter - 互联网在我的 android 模拟器上不起作用?

android - Mac OS 上 Android 模拟器的 home 键是什么?

Android 地点 API : Google Play Services Out of Date on Emulator