infinat 2019-08-26 19:26 采纳率: 0%
浏览 322

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读取有权限和层级控制吗?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 基于卷积神经网络的声纹识别
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 一直显示正在等待HID—ISP