如果你愿意的话,我有一台装有蓝牙4.0的笔记本电脑或低功耗蓝牙。
出于测试目的,我想将这台Windows 8笔记本电脑变成一个假的iBeacon UUID / MajorID / MinorID,这样我就可以测试我写的应用程序了。
是否有可用于广播信标的软件?或者我可以(轻松)自己编写的任何API或库?
像这样,但是对于Windows:https://github.com/timd/MactsAsBeacon
实际的iBeacon正在这里,但我很乐意在此期间进行一些测试。
答案 0 :(得分:12)
所以,这是可能的,但你需要Windows 8中的Linux VM。这是一个小指南。
第1步:VirtualBox
第2步:Linux
执行命令
sudo apt-get install bluez
sudo hciconfig hci0 up
sudo hciconfig hci0 leadv 3
sudo hciconfig hci0 noscan
hciconfig
在继续之前,最后一个命令应显示UP RUNNING
。
如果找不到hci0
设备,则可能是VM usb过滤器设置不正确,或者Windows正在使用您的设备。我发现在Windows设备管理器中禁用和启用设备有助于VM识别它。当您启用从VirtualBox共享蓝牙设备时,当您选择“显示隐藏设备”时,设备管理器应显示灰色的蓝牙适配器。
第3步:汇总广播命令
python -c 'import sys,uuid; sys.stdout.write(uuid.uuid4().hex)'
hcitool -i hci0 cmd 0x08 0x0008
1E 02 01 1A 1A FF
(特定于iBeacon的标志)4C 00
是Apple 02 15
(iBeacon广告指示器)00 00
00 00
C8 00
或简称:C8
您的命令应如下所示,将__
替换为您的UUID:
sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ 00 00 00 00 C8
第4步:开始广播!
示例命令:
sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 63 6F 3F 8F 64 91 4B EE 95 F7 D8 CC 64 A8 63 B5 00 00 00 00 C8
如果该命令成功,它应该继续传输。抓住您的Android或iPhone设备并安装 iBeacon locate 应用程序,看看您是否可以找到您的信标广播。
快乐的应用调试!
致谢:很多想法都来自this article。
答案 1 :(得分:3)
不幸的是,Windows 8无法作为BLE信标进行传输。虽然Windows 8.1具有BLE API,但它们只能在配对后用于与标准蓝牙配置文件设备通信。只有操作系统才能进行扫描和配对。这使得第三方应用程序无法扫描信标或传输信标。我们希望Windows 9能够改变这种状况。
Windows上的替代方案是安装VirtualBox等虚拟机软件,并使用Linux虚拟机进行传输。这里有一个免费的例子:http://developer.radiusnetworks.com/altbeacon/virtual
请注意,此示例向知识产权传输免费的AltBeacon广告。但修改虚拟机的altbeacon_transmit脚本以传输任何其他信标格式是微不足道的。您可以在此处查看发送器脚本的源代码:https://github.com/RadiusNetworks/altbeacon-reference/blob/master/altbeacon_transmit
答案 2 :(得分:1)
现在有一个名为WinBeacon的托管C#库就是这样做的。