linux - 在 Fedora 20 上使用 bluez 注册一个 sdp 服务

标签 linux bluetooth fedora bluez

我正在尝试通过 bluez 在 Linux 上构建蓝牙服务。根据该教程 [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:FF:FF:00:00:00 上的 SDP 服务器:连接被拒绝”。一些用户说有必要让 sdpd 运行才能使用 sdp_connect,这里没有名为 sdpd 的二进制包,但我认为 sdpd 现在是 Fedora 上 bluetoothd 的一部分,所以当 sdp_connect 尝试时应该运行 sdp 服务器连接。为什么 sdp_connect 不起作用?

最佳答案

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

ExecStart=/usr/libexec/bluetooth/bluetoothd --compat

然后

$ systemctl daemon-reload
$ systemctl restart bluetooth.service

关于linux - 在 Fedora 20 上使用 bluez 注册一个 sdp 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22739906/

相关文章:

c - 按 S_ISDIR 类型筛选 scandir

java - Android 通过蓝牙从 HC-06 发送/接收数据

C++ 所有用于短信返回的 AT 命令的错误 | PC<->通过蓝牙和 winsocket 的移动连接

linux - Apache 无法启动

java - 如何在windows上使用java执行linux命令?

python - 在 Bash 脚本中传递参数的 CURL API

ios - 如何在 iOS 上搜索并连接附近的经典蓝牙设备(非 BLE)?

ruby-on-rails - 乘客/mod_rails在启动Apache时无法在Fedora 12中初始化

linux - 5 种不同的 Fedora 服务器类别

linux - 如何在 Linux eclips 中编译 mbed main.c++ 和 main.h 文件以获得构建文件(.elf.hex)