Bluetooth 在内核4.1中,使用Dbus API为bluez 5.31写入特征值失败
我无法写入将值分配给已暴露的特性 通过新的4.1内核上的dbus 在升级到内核4.1之前,相同的应用程序可以编写 通过dbus将属性值指定给特性,无任何问题 以下是从Bluetooth收集的日志- org.freedesktop.DBus.Error.AccessDenied:拒绝发送邮件,1 匹配规则;类型=方法调用,发送方=:1.24 uid=0 pid=4112 通信=bluez-5.31/src/Bluetooth-ndE interface=org.bluez.GattCharacteristic1成员=WriteValue错误 name=unset requested_reply=0 destination=:1.25 uid=0 pid=4114 通信=/测试 有什么建议吗?Bluetooth 在内核4.1中,使用Dbus API为bluez 5.31写入特征值失败,bluetooth,dbus,bluez,characteristics,Bluetooth,Dbus,Bluez,Characteristics,我无法写入将值分配给已暴露的特性 通过新的4.1内核上的dbus 在升级到内核4.1之前,相同的应用程序可以编写 通过dbus将属性值指定给特性,无任何问题 以下是从Bluetooth收集的日志- org.freedesktop.DBus.Error.AccessDenied:拒绝发送邮件,1 匹配规则;类型=方法调用,发送方=:1.24 uid=0 pid=4112 通信=bluez-5.31/src/Bluetooth-ndE interface=org.bluez.GattCharacte
提前感谢。它显示访问被拒绝,因为默认情况下,内核4.1中没有启用接口org.bluez.GattCharacteristic1 要访问任何dbus接口,dbus配置文件必须允许接口名称,否则将显示访问被拒绝 我们可以在/etc/dbus-1/system.d/bluetooth.conf找到蓝牙的dbus配置文件,该文件如下所示:
<policy user="root">
<allow own="org.bluez"/>
<allow send_destination="org.bluez"/>
<allow send_interface="org.bluez.Agent1"/>
... ... ... ...
</policy>
接口org.bluez.GattCharacteristic1的权限需要添加策略,如下所示:
<policy user="root">
<allow own="org.bluez"/>
<allow send_destination="org.bluez"/>
<allow send_interface="org.bluez.Agent1"/>
... ... ... ...
<allow send_interface="org.bluez.GattCharacteristic1"/>
<allow send_interface="org.bluez.GattDescriptor1"/>
<allow send_interface="org.freedesktop.DBus.ObjectManager"/>
... ... ... ...
</policy>
就我而言,它解决了问题