在示例之后,我使用以下命令启动了我的 Pi:
pi@raspberrypi ~ $ sudo hciconfig hci0 up
pi@raspberrypi ~ $ hciconfig
hci0: Type: BR/EDR Bus: USB
BD Address: 00:1A:7D:DA:71:13 ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING
RX bytes:1094 acl:0 sco:0 events:54 errors:0
TX bytes:768 acl:0 sco:0 commands:54 errors:0
pi@raspberrypi ~ $ sudo hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 1a 1a ff 4c 00 02 15 e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 00 00 00 00 c5 00 00 00 00 00 00 00 00 00 00 00 00 00
< HCI Command: ogf 0x08, ocf 0x0008, plen 44
1E 02 01 1A 1A FF 4C 00 02 15 E2 C5 6D B5 DF FB 48 D2 B0 60
D0 F5 A7 10 96 E0 00 00 00 00 C5 00 00 00 00 00 00 00 00 00
00 00 00 00
> HCI Event: 0x0e plen 4
01 08 20 12
pi@raspberrypi ~ $ sudo hciconfig hci0 leadv 3
然后,打开我的 Android 4.4 手机,它与我从在线零售商(无品牌)订购的 Ibeacon 设备完美配合。
完美运行意味着我可以看到 Java 代码中的所有广告数据(通过遵循 onLeScan(...) 回调)以及 RSSI,并解析它们(UUID、major、minor 等)。
奇怪的是我将调试信息放入:
public synchronized void onLeScan(final BluetoothDevice device,
int rssi, byte[] scanRecord)
我从 PI 得到的 byte[] scanRecord 是:
02 01 0A 02 0A 08 0C 09 43 53 52 38 35 31 30 20 41 31 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
我无法读取这些似乎与通过 Pi 命令行设置的字节完全不匹配的字节,我尝试使用 App IBeacon Locate,仍然找不到我的 Pi,请帮助,谢谢。
添加更多详细信息:只有 BLE 加密狗是与示例不同的品牌,因为我不在美国,我不确定它的驱动程序是否在 PI 中正确安装,实际上我没有为它明确安装任何驱动程序(我是 Linux 的新手),我只是插入并启动了命令行。