调用RegisterProfile时出现org.freedesktop.DBus.Error.UnknownMethod错误

时间:2017-11-08 05:37:27

标签: bluetooth dbus bluez

我正在尝试使用bluetoothctl(bluez5.42)来注册个人资料。 我按如下方式运行bluetoothctl:

bluez-5.42/dev/client# ./bluetoothctl 
[NEW] Controller 00:50:43:22:29:D9 pe-lt571-0 [default]
[bluetooth]# register-profile 00000017-0000-1000-8000-00805f9
Failed to register profile: org.freedesktop.DBus.Error.UnknownMethod

只是添加我在Linux内核4.4上。 在我开始使用bluetoothctl之前,我已经运行过bluetoothd。 另外,我检查了使用d-feet做同样的事情,我得到了同样的错误。

为什么我收到未知方法错误?这是一些设置问题吗?

我在dbus监视器上获得以下内容

method call sender=:1.89 -> dest=org.bluez serial=20 path=/org/bluez/hci0; interface=org.bluez.GattManager1; member=RegisterProfile
   object path "/org/bluez/profile"
   array [
      string "00000100-0000-1000-8000-00805f9"
   ]
   array [
   ]

1 个答案:

答案 0 :(得分:1)

在org.bluez.GattManager1 DBus接口上没有名为RegisterProfile的方法。它是bluez-5.42 bluetoothctl代码中的一个错误,修复为bluez-5.46。 RegisterProfile方法是在org.bluez.ProfileManager1接口上。

从bluez-5.46及以后的register-profile与bluetoothctl不存在。如果要注册蓝牙配置文件,请查看bluez源目录中的test / test-hfp python脚本。它显示了如何在org.bluez.ProfileManager1上使用RegisterProfile方法。另请参阅doc / profile-api.txt以了解此接口上可用的方法。

或者如果您想注册GATT服务,请参阅bluez源中的test / test-gatt-profile python脚本和doc / gatt-api.txt。