蓝牙按钮未触发辅助功能服务

时间:2018-12-26 18:27:29

标签: android bluetooth keypress accessibilityservice keymapping

我正在尝试构建应用程序,以映射蓝牙耳机按钮以用于其他用途。

我要解决的问题: 我们当中许多人经常参加电话会议,并使用蓝牙耳机。尽管Google已发布了“耳机按钮”指南,但并非所有制造商都遵循该指南。例如。指南指出,长按3键耳机上的中键,应该使通话静音/取消静音。但是,我有一个LG Force耳机,长按此键可以保留通话。我有另一个耳机,根本无法响应长按。

对电话或耳机上的专用静音“硬件”按钮的请求已经存在很长时间了。有些耳机带有专用的静音按钮。应用程序商店中有一些应用程序,声称可以重新映射蓝牙按钮以执行所需的功能。我已经尝试过这些应用程序,但它们不起作用,我想我知道为什么。因此,唯一的选择是摆脱当前的耳机,并使用专用的静音按钮获得一个新的耳机。

当前可用的应用程序无法运行的原因可能是由于Oreo中引入的行为更改。

报价: 应用程序应该能够在三种情况下按优先级顺序处理媒体按钮事件:

当应用程序的UI活动可见时,当UI活动被隐藏且应用程序的媒体会话处于活动状态时,当UI活动被隐藏且应用程序的媒体会话处于非活动状态并且需要重新启动时

随着这些限制的变化,重新映射按钮的应用程序再也不会从蓝牙耳机获取广播信息。

因此,我想到了使用Accessibility Services(我通过https://www.tooploox.com/blog/unusual-ways-using-android-accessibility-services阅读)构建应用程序并捕获来自蓝牙耳机的按钮按下的问题。该应用程序正确捕获了有线耳机上的按钮按下以及手机上的物理按钮。但是,当我按蓝牙耳机上的按钮时,没有任何反应。

我通读了该博客(http://mikesgeneralblog.blogspot.com/2015/08/controlling-bluetooth-buttonsof-course.html),其中说,我需要取消对Bluetooth设备的按键事件,然后才能对其进行重新编程。但是,我不明白从我的应用程序执行此操作的方式。

所以,我的问题是,请问我需要做些什么来拦截蓝牙耳机按钮的动作?

0 个答案:

没有答案