问题原因:较大的可能性是后端给的状态不正确
问题分析:使用d-feet工具或者命令行,查询com.deepin.daemon.Bluetooth蓝牙对应dbus的GetAdapters接口,返回值类似:'[{"Path":"/org/bluez/hci0","Name":"PC","Alias":"tmr-PC","Powered":true,"Discovering":false,"Discoverable":true,"DiscoverableTimeout":0}]',适配器开关问题可以查看Powered字段。
特定连接问题继续查询dbus的GetDevices (Object Path adapter)接口,参数使用第一个接口查询的Path字段,返回结果类似(下面取了数组的一个成员):
当前连接状态由"State","ConnectState"两个指定共同控制,state是一个枚举类型,包含已连接、正在连接、未连接,connectState是布尔型,记录连接状态。当state为已连接并且connectState为true时,才为连接状态。
出现连接问题就可以直接先从这两个dbus接口分析,是否状态字段不正确,如果状态有问题可以找后端同事定位。状态字段没有问题那就需要分析前端代码,存在状态没更新的问题,接口后端接口查看任务栏蓝牙模块AdaptersManager处理逻辑,以及Adapter、Device的数据。
|
|
|
|
|
版权说明:论坛帖子主题均由合作第三方提供并上传,若内容存在侵权,请进行举报