首页 > 编程知识 正文

蓝牙avrcp版本怎么选择,apk动态调试

时间:2023-05-04 01:11:45 阅读:162891 作者:3827

AVRCP连接状态异常

33558www.Sina.com/:Android-9 (版本p ) ) )。

3358www.Sina.com/:断开设备连接,蓝牙适配器. action _ connection _ state _ changed广播延迟,导致连接状态http://www.Sina

看log就知道各主要协议都已经到期完成了,为什么上述广播没有及时发送呢?

此广播由adapter properties.sendconnectionstatechange () )触发,没有触发器指示不满足if条件

更新计数检查连接状态更改(state,prevState ) { intnewadapterstate=converttoadapterstate intprevavate 设置连接状态(newadapterstate; intent intent=new intent (蓝牙适配器. action _ connection _ state _ changed ); intent.put extra (bluetooth device.extra _ device,device ); intent.put extra (bluetooth adapter.extra _ connection _ state,newAdapterState ); intent.put extra (bluetooth adapter.extra _ previous _ connection _ state,prevAdapterState ); intent.add flags (intent.flag _ receiver _ registered _ only _ before _ boot ); log.I(tag,' adapter _ connection _ state _ change : ' device ' 3360 ' prevadapterstate '-' newadapterster ); if (! isnormalstatetransition (prev state,state ) (log.w ) tag,' adapter _ connection _ state _ change : ) unexpected trated } updatecountersandcheckforconnectionstatechange ()函数仅在设备断开连接且所有连接的协议都已断开连接时返回true。 这意味着存在尚未断开连接的协议,即使与log配合使用,avrcp协议基本上已经锁定,也没有断开连接。

Avrcp协议的断开完全符合A2DP协议,并且log在断开Avrcp完成时协议栈中没有连接记录,btif_rc_get_device_by_handle )为NULL。

那表示根本没有连接avrcp。 为什么蓝牙服务层保存着avrcp连接成功的状态呢?

在之前的A2DP连接后,如果SINK侧积极地继续分析连接avrcp的流程,则在A2DP连接的状态机为StateOpening的情况下,通过安卓版本事件呼叫BTA_AvOpenRc ()

协议连接首先进行SDP服务发现,从log中也可以看出用问题现象制作了l2cap链接。

当此l2cap链路请求连接时,对等方响应PEER_CONNECT_RSP_NEG而拒绝,avrcp协议连接失败

重要的是,avrcp向服务层报告所有连接都失败了,为什么连接成功,并一脸懵逼。

handle_rc_connect ) )跟踪处理函数,发现代码中失败的处理有问题,无论成功还是失败,总是向高层报告连接成功的状态

到目前为止很明显,蓝牙适配器. action _ connection _ state不会由于上述函数处理的失败而向外部发行

更多互联技术,欢迎关注微信公众号: Connectivity

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。