哪里是蓝牙服务发现协议(SDP)守护进程?蓝牙SDP - 哪里是sdpd?
我想注册使用的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手机(使用相同的代码)地址进行连接。这工作得很好,但当然是没用的。
- 难道对这个问题的详尽的谷歌搜索,但没有找到明确的答案。很多关于hcid,pand等的讨论,但没有关于这些相关性的明确答案。
我的目标:
我想我的Debian系统上登记自己的服务,让我可以从其他蓝牙设备连接到它(尤其是我的Android)。该服务运行良好,没有SDP注册就无法找到它。
我很高兴能够使用它的(已知)频道号直接连接到它,但Android只能通过注册服务UUID连接(即使用BluetoothDevice.createRfcommSocketToServiceRecord(uuid)
),但我看不到API连接到频道。
有趣的是,我可以通过通道数,而不是周围的其他方式连接到在Android的服务。我认为也许sdpd已经过时了 - 所有的参考资料都有几年的历史了。
感谢您的建议。我有一个轻微(我认为)与新来源apt-get更新的问题。有什么似乎是警告“以下签名无法验证,因为公钥不可用:...”。我认为这只是一个警告。我尝试了apt-cache搜索“jessie”,“backports”,“bluez”等任何东西,但没有看到任何相关的东西尚未安装。我也被“DEBIAN_FRONTEND = ...”这一行所困惑。那去哪了? – DontPanic
我建议你在安装新的之前首先卸载你的蓝牙软件包(我将其添加到我的答案中)。通过apt-get安装'blueman'的backport版本应该可以获得所有你需要的(backport或not)依赖关系 - 请参阅:https://packages.debian.org/jessie-backports/blueman。不知道你的“...公共密钥不可用:...”警告,它不应该发生。在你添加backports到你的'/ etc/apt/sources.list'之后,你应该运行apt-get update(我把它添加到我的答案中)。 'DEBIAN_FRONTEND =非交互'位是可选的,以使其无辅助地运行。 –
另请注意,我相信通过蓝牙进行连接并将您的外部设备安装为卷并将文件/文件夹复制并粘贴到设备/计算机上的能力已经在Debian 8上“逐步淘汰”了。现在他们迫使您使用“推送”系统(或称为“推送”系统),以便您可以在计算机/设备上选择一个文件/文件夹,并将其“推送”到另一个文件/文件夹。在Debian 8上,我永远不会有2个窗口显示设备和计算机的文件,并在窗口之间复制和粘贴(可惜)。即使推送功能只与backport软件包一起工作。 –