如何让 Raspberry Pi 3 可被 iOS 和 CoreBluetooth 发现?

How do I make Raspberry Pi 3 discoverable for iOS and CoreBluetooth?

我有一个 Raspberry Pi 3,我正试图让 iOS 设备可以发现它。我 运行 sudo hciconfig hci0 piscan 让它被发现。我可以用我的 iMac 看到它。

在 iOS,我正在使用 CoreBluetooth 和 运行 扫描附近的设备。我可以找到几个 FitBit 设备和我的 iMac,但是 Raspberry Pi 没有显示。

我是否必须启用其他设置才能发现低功耗蓝牙? Raspberry Pi 3 与蓝牙连接的 iOS 兼容吗?

提前致谢。感谢您对此提供的任何帮助。

经过大量研究和 Twitter 朋友的一些帮助,要启用 LE 广播,您必须使用以下命令之一。

sudo hciconfig hci0 leadv 0
sudo hciconfig hci0 leadv 3

0表示可连接。

3表示不可连接。

对于与 Iphone 连接有问题的用户,我发现使 RPi 在蓝牙扫描屏幕中可见的唯一方法是将 raspberry PI role/profile 设置为音频接收器除了在@Jeremiah Jessel 中发布的回答之外,还有以下内容:

sudo /bin/hciconfighci0 inqdata "0c097261737062657272797069020a00091002006b1d460217050d03001801180e110c1115110b1100"

全部在一行中,长字符串是查询数据,在此字符串中我们设置蓝牙名称和我们 raspberry PI

支持的配置文件

对于任何得到 HubuN 帮助并且想知道与 Manuel Otto 一样的人,您可以通过编辑 0c09 之后和 020a 之前的十六进制数据来更改名称。我没有添加评论的声誉,这就是为什么我要添加一个单独的答案。

以HubuN为例:

sudo /bin/hciconfig hci0 inqdata "0c097261737062657272797069020a00091002006b1d460217050d03001801180e110c1115110b1100"

"raspberrypi" 是 7261737062657272797069

假设您想将其更改为 "MyName"

您将得到 "MyName" 的十六进制并用 0 填充剩余的空数据

4d794e616d65 = "MyName"

7261737062657272797069 = "raspberrypi"

4d794e616d650000000000 = "MyName     "

这给你:

sudo /bin/hciconfig hci0 inqdata "0c094d794e616d650000000000020a00091002006b1d460217050d03001801180e110c1115110b1100"

我对其余的十六进制代码不是很熟悉,所以如果有人想解释一下,或者提供更简单的解决方案,请随意。

(注意:您可以使用 this one 之类的工具将文本转换为十六进制)