当前位置: 首页 > 知识库问答 >
问题:

将RaspberryPi作为Ibeacon设备的RadiunSetwork示例失败

吴松
2023-03-14

接下来是示例,我用命令开始我的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获得的字节[]扫描记录是:

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命令行设置的字节完全不匹配,我尝试了应用程序IBMeacon定位,仍然找不到我的Pi,请帮助,谢谢。

添加更多详细信息:由于我不在美国,只有BLE-dongle与示例不同,我不确定其驱动程序是否在PI中正确安装,实际上我没有为其明确安装任何驱动程序(我是Linux新手),我只是插入并启动了命令行。

共有1个答案

宣星光
2023-03-14

一些使用不同蓝牙软件狗的人报告说,在启用之前,必须改变命令的顺序并禁用广告。尝试:

sudo hciconfig hci0 up
sudo hciconfig hci0 noleadv
sudo hciconfig hci0 leadv 
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

您也可以让我们知道您的蓝牙加密狗的型号以及它自己报告的Linux。您可以通过键入lsusb来查看这一点

顺便说一句,很好地捕获了Android的onLEScan方法读取的字节。非常有帮助!

 类似资料:
  • 有没有人使用三星的蓝牙LE API让三星Android设备作为iBeacon做广告?这应该是可能的,但我没有访问设备来尝试它。 如果有人用它来做三星Android设备的广告,作为任何其他蓝牙LE外设,我也想知道这一点。 编辑:这现在可以在Android L上实现。请参见此处。

  • 按照quickstart指南,我创建了Project,Enterprise和Policy。停留在设备配置阶段。 设备详细信息:Minix X68i,Android 6.0.1[根] 注意:设备上没有安装向导的欢迎屏幕 我甚至尝试手动启动,设备会显示“哎呀!”

  • Android设备能否充当iBeacon,并确定其他Android设备何时进入其范围?其他Android设备是否需要开启蓝牙? 如果一个顾客来到我的商店,他的设备上没有安装我的应用程序,iBeacon可以工作吗,还是他必须先安装应用程序?每天都有这么多顾客来我们的商店,但是如果他们没有安装我的应用程序,iBeacon的概念有用吗?

  • iOS7设备能否充当iBeacon并确定其他iOS7设备何时在其范围内?其他iOS7设备是否需要打开蓝牙?

  • 我正试图写一个游戏计划,我需要这个问题的信息: Android设备可以像iOS设备一样用作iBeacon发射器吗?

  • 是否可以将iOS7设备作为蓝牙LE外设(iBeacon)运行并在后台发布广告?我已经能够让它在前台用下面的代码做广告,并且可以从另一个iOS设备上看到它,但是一旦我回到主屏幕,它就停止了广告。我确实在plist中添加了蓝牙外围后台模式,但这似乎没有帮助,尽管我确实得到提示说设备想要在后台使用蓝牙。是我做错了什么,还是在iOS不可能? 以下是接收/侦听端的代码: