【发布时间】:2017-05-08 11:46:29
【问题描述】:
蓝牙服务发现协议 (SDP) 守护进程在哪里?
我正在尝试使用 bluez 在 Debian V8.0 上注册蓝牙服务。我在https://people.csail.mit.edu/albert/bluez-intro/ 使用示例代码。在我尝试之前一切都很顺利
sdp_connect( BDADDR_ANY, BDADDR_LOCAL, 0 );
失败了。经过一番挖掘,我发现 sdp 守护程序 (sdpd)(它需要连接到的)没有运行,实际上我的系统上甚至不存在。
我尝试了什么:
- 我已安装 (apt-get) 每个蓝牙或 bluez 软件包,这些软件包似乎与远程相关,但仍然没有 sdpd。
- 我尝试使用我的 Android 手机地址进行连接(使用相同的代码)。这很好用,但当然没有用。
- 对该问题进行了详尽的 Google 搜索,但没有找到明确的答案。很多关于 hcid、pand 等的讨论,但没有关于这些如何相关的明确答案。
我的目标:
我正在尝试在我的 Debian 系统上注册我的服务,以便我可以从另一个蓝牙设备(特别是我的 Android)连接到它。该服务运行良好,没有 SDP 注册就无法找到它。
我很乐意直接连接到它,使用它的(已知)通道号,但 Android 只能通过注册的服务 UUID 连接(即,使用 BluetoothDevice.createRfcommSocketToServiceRecord(uuid)),但我看不到 API 连接到频道。
有趣的是,我可以通过频道号连接到 Android 上的服务,但反之则不行。我认为 sdpd 可能已经过时了——所有对它的引用都是几年前的。
【问题讨论】:
标签: android bluetooth debian sdp