android 8.0以上如何用mediaButton控制来电接听?

1、需求描述
当来电时,用蓝牙发来的mediaButton KeyEvent,控制接听或者拒接

2、难点
如何在来电时能够获取MediaButton的事件

3、尝试1
通过AudioManager抢焦点、注册MediaButtonRecever,可以实现截获MediaButton KeyEvent
,通过监听焦点丢失,重复启动抢占焦点,也可以防止普通的APP抢去焦点。
但来电时,电话进程级别很高,根本抢不过来。所以此路不通

4、尝试2
后来发现Logcat中是有响应的KeyEvent日志的,比如一个Tag为MediaSessionService的,就会在蓝牙按键后,记录一个dispachKeyEvent日志。且不受来电、APP影响。于是尝试通过监听此Tag日志来实现需求。但不幸的是此日志可以在ADB命令中看到,但在APP中却无法读取。

5、求问
一是有没有办法实现需求(不root),
二是Logcat读取有权限和层级控制吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐