在Fedora 20上注册带有bluez的sdp服务

use*_*707 4 linux bluetooth fedora bluez

我正在尝试通过Linux上的bluez构建bluetooh服务.根据该教程[http://people.csail.mit.edu/albert/bluez-intro/x604.html],有必要连接到本地SDP服务器以注册服务.但是"sdp_connect(BDADDR_ANY,BDADDR_LOCAL,SDP_RETRY_IF_BUSY)"在这里返回NULL并且所有与蓝牙相关的服务在我的Fedora上运行没有任何问题,显然.每当我尝试通过命令"sdptool browse local"获取有关SDP本地服务器的信息时,我收到以下消息:"无法连接到FF上的SDP服务器:FF:FF:00:00:00:连接被拒绝".一些用户说为了使用sdp_connect而有必要运行sdpd,这里没有包含二进制名称sdpd的软件包,但我认为sdpd现在是Fedora上bluetoothd的一部分,所以sdp服务器应该在sdp_connect尝试时运行连接.为什么sdp_connect不起作用?

ecd*_*lma 8

你必须使用--compat标志启动bluetoothd.我不知道这是否是"Fedora方式",但我编辑了/usr/lib/systemd/system/bluetooth.service并在ExecStart选项中包含了该标志.

ExecStart=/usr/libexec/bluetooth/bluetoothd --compat
Run Code Online (Sandbox Code Playgroud)

然后

$ systemctl daemon-reload
$ systemctl restart bluetooth.service
Run Code Online (Sandbox Code Playgroud)

  • 此变通办法也适用于ubuntu 16.04。需要编辑`/ lib / systemd / system / bluetooth.service`并执行sudo systemctl daemon-reload && sudo service bluetooth restart (2认同)
  • 请不要使用“--compat”选项来启用兼容模式-> /sf/answers/3936721911/ (2认同)