分享

UOS系统托盘蓝牙状态异常定位

lemon 2021-10-30 14:42:24 发表于 已解决 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 1410
问题原因:较大的可能性是后端给的状态不正确
问题分析:使用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的数据。



版权说明:论坛帖子主题均由合作第三方提供并上传,若内容存在侵权,请进行举报

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系在线客服