我在网上看到了新发布的iOS 7.1的iBeacon支持.
特别:
我无法通过自己的测试来确认这些声明中的任何一个.事实上,我似乎不太可能从锁定的设备获取didEnterRegion/didExitRegion通知.(更准确地说,我似乎得到了didEnterRegion通知,但没有得到didExitRegion通知).这可能是因为Apple让我删除了我的info.plist中的BLE背景模式条目 - 我不完全确定.我还在努力解决这个问题.
我正在构建一个框架,我需要导入一些objective-c框架,现在我需要导入"Beaconstac.framework",但因为我们无法在swift框架项目中添加桥接头,所以我的问题是如何使用它我的项目中的框架在我试过的项目中无法直接访问
进口Beaconstac
但它给出错误"没有这样的模块"
有没有替代方法呢?
我想知道iBeacon实际上是如何工作的.我找到了AirLocate的示例代码,但无法弄清楚它是如何工作的.iBeacon适用于BLE,因此可以通过蓝牙与其他BLE支持的设备进行数据通信吗?
有可能通过蓝牙使用BLE或信标在iOS - Android设备之间进行数据传输吗?
iOS已经宣布了iBeacon技术,但没有找到任何关于此的技术规范文档.我也想知道它在android上是如何工作的?
有人可以描述一下这项技术,是否有可能在iOS-iOS设备和iOS-Android设备之间通过蓝牙进行数据通信?
我在OSX下遵循这个示例项目BeaconEmitter来生成样本iBeacons,用于在iPhone上开发应用程序.BeaconEmitter应用程序基于Matthew Robinson的教程,直到Apple决定在OSX的Core Location上引入iBeacon支持,生成iBeacon的唯一机会是使用IO Bluetooth Framework从头开始构建广告数据包.
但是......那不起作用!
我当然也尝试过iOS上的Apple的AirLocate教程代码,以及可以正常使用的iOS设备之间的代码.但是,如果您尝试使用OSX(BeaconEmitter)生成iBeacon并使用不起作用的iOS设备(AirLocate)接收它.
我有一个基于CC2540 TI芯片的BLE RF嗅探器,以及Windows上的TI嗅探器软件.所以我观察到从AirLocate和BeaconEmitter生成的iBeacons数据包有点不同.
这是使用AirLocate生成的iBeacon:

Thah是使用BeaconEmitter生成的ibeacon:

继这篇文章中的逆向工程师(因为Apple尚未发布iBeacons规范)之后,可以看出Adv PDU Header与两种情况不同.在OSX中,Type = 2且TxAdd = 0,在iOS中Type = 0且TxAdd = 1.
为何如此区别?
以女巫的方式可以强制OSX发送iOS的相同Adv PDU Header?
似乎在AdvData的前5个字节中,两个数据包不等于:
OSX:02 01 06 1A FF
iOS:02 01 1A 1A FF
AdvData有效负载的其余部分与上面链接的逆向工程师帖子一致.
再次,为什么这个字节不同?
我没有找到OSX示例中依赖于哪些代码部分.
更新:它的工作原理
因为BeaconEmitter生成的iBeacon未被AirLocate识别的主要原因是我的错.我不明白AirLocate过滤UUID的一些具体示例,即:E2C56DB5-DFFB-48D2-B060-D0F5A71096E0或5A4BCFCE-174E-4BAC-A814-092E77F6B7E5或74278BDA-B644-4520-8F0C-720EAF059935并非每个UUID值.
因此,BeaconEmitter生成的随机UUID肯定与AirLocate中预先写好的UUID不匹配.
如果您可以从BeaconEmitter"强制"使用具有良好值的UUID,则AirLocate可以识别它:

所以这是iOS AirLocate示例应用程序中的成功测试:

保持上述相同字节的差异......只有嗅探器可以看到:).
我正在尝试开发一个iOS应用程序来接受iBeacon通知.如果iOS模拟器可以使用MacBook的BlueTooth功能来接受iBeacon消息,这很方便.
iOS模拟器是否可以接受来自外部真实iBeacon设备的通知?
我正在尝试使用以下BeaconLayout检测Kontakt Beacon:
setBeaconLayout("m:8-9=0215,i:10-13,i:14-15,i:16-17,i:18-25"));
Run Code Online (Sandbox Code Playgroud)
但我似乎没有正确地做到这一点.广告包结构如下:

提前致谢.
有没有办法在Windows 10开发中使用ibeacons?由于使用以前版本的Windows的ibeacons开发似乎几乎不可能,我们现在是否有机会支持这项技术?
有没有人开始开发这样的东西?
我必须承认,对于BLE 4.0,我是一个新手,我想了解什么是BLE外设的唯一标识符.通常,对于所有WiFi通信,MAC被视为设备的唯一ID.我有以下问题:
希望你们中的一些人可以帮忙.
关于如何将USB蓝牙4加密狗设置为iBeacon,有一篇着名的博客文章.它归结为这个神奇的命令:
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
Run Code Online (Sandbox Code Playgroud)
这个例子的问题是它是如此不透明,很难以任何更通用的格式使用它.我已经能够分开一点:
sudo hcitool -i hci0 cmd
Run Code Online (Sandbox Code Playgroud)
将hci命令发送到hci0设备
0x08 0x0008
Run Code Online (Sandbox Code Playgroud)
设置广告包是神奇的,其他stackoverflow命令说"只是使用它,不要问
1e
Run Code Online (Sandbox Code Playgroud)
是以字节为单位的数据包后面的整个ENTIRE的长度
02 01 1a 1a
Run Code Online (Sandbox Code Playgroud)
是用于设置广告包的标志(详情请求)
ff 4c 00 ...
Run Code Online (Sandbox Code Playgroud)
是编码iBeacon信息的"公司特定数据"
我试图做的是将"FF ..."字节替换为用于设置NAME参数"04 09 41 42 43"的操作码(应将其设置为ABC),但这不起作用. …
当AD类型为0xFF(制造商特定数据)时,在哪里可以找到BLE广告包中AD结构中AD类型字段后面设置的注册公司ID列表?
具体来说,例如,如何找到告知Apple公司ID为0x4C00的信息?(在iBeacon数据包中,AD类型0xFF后跟0x4C和0x00.)