把Macbook变成iBeacon
我知道我可以将iOS设备变成iBeacons( iOS7设备可以作为iBeacon吗? )。 不幸的是,我只有一个设备,我的信标还没有到达。 所以我想知道如何将我的MacBook Air(2011年中期,不支持蓝牙4.0)变成一个iBeacon用于testing目的。 是否有任何现成的应用程序可用于iOS的airlocate? 提前致谢!
注意:这只适用于小牛,不适用于优胜美地。
小牛在Core Location中并没有iBeacon支持,但是,小牛现在可以充当BLE外围设备。 鉴于iBeacon基本上是一个外设,它应该(甚至有可能)使用小牛作为iBeacon。
为了在iOS上创buildiBeacon,您首先创build一个CLBeaconRegion
对象,然后使用peripheralDataWithMeasuredPower:
方法获取包含必要广告数据的NSDictionary
以进行广播。 如果你从iOS设备上获取这个NSDictionary
的内容,并在小牛身上使用它,那么你将得到一个iBeacon。
我已经创build了一个类来简化这个过程,并允许您在Mavericks上直接生成广告数据字典。 源代码可在https://github.com/mttrb/BeaconOSX获得;
BLCBeaconAdvertisementData
类获取proximityUUID
, major
, minor
和calibrated的功率值,并创build一个NSDictionary,可以传递给小牛的CBPeripheralManager
的startAdvertising:
方法。
BLCBeaconAdvertisementData
类非常简单。 主要工作是通过以下方法完成的:
- (NSDictionary *)beaconAdvertisement { NSString *beaconKey = @"kCBAdvDataAppleBeaconKey"; unsigned char advertisementBytes[21] = {0}; [self.proximityUUID getUUIDBytes:(unsigned char *)&advertisementBytes]; advertisementBytes[16] = (unsigned char)(self.major >> 8); advertisementBytes[17] = (unsigned char)(self.major & 255); advertisementBytes[18] = (unsigned char)(self.minor >> 8); advertisementBytes[19] = (unsigned char)(self.minor & 255); advertisementBytes[20] = self.measuredPower; NSMutableData *advertisement = [NSMutableData dataWithBytes:advertisementBytes length:21]; return [NSDictionary dictionaryWithObject:advertisement forKey:beaconKey]; }
我在http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/上有更详细的博客文章。;
目前为止我find的最好的解决scheme是Tim Duckett的这个: https : //github.com/timd/MactsAsBeacon
只需抓住项目,设置UUID,主要和次要值,然后单击广播。 真的很简单。 解决scheme是基于这个博客文章: http : //www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/
如果你想保存9.99€,请看看mttrb开源客户端的最新版本。 我添加了一些更多的GUI,所以你可以调整所有的领域。 https://github.com/deadfalkon/BeaconOSX/releases甚至有一个二进制下载。;
这对于OSX小牛来说是可能的,但是在Mountain Lion和早期版本的操作系统中是不可以的。 我的公司Radius Networks有一个MacBeacon应用程序,可以在小牛上这样做。
在OSX Mountain Lion中,与iOS 6+不同的是,对于需要像iBeacon一样做广告的蓝牙外设模式,没有内置的支持。 这意味着要滚动自己的低级蓝牙代码,这是不难说的。
但是对于较老的操作系统有一个解决scheme。 我将Mac上的外置蓝牙适配器与运行Linux的VirtualBox VM配对,实现了您所需的function。 我的公司使这个虚拟机在这里免费下载: http : //developer.radiusnetworks.com/ibeacon/
我尝试了所有这些解决scheme,但无法让AirLocate拿起信号,直到我遵守这个规则: https : //github.com/lgaches/BeaconEmitter并开始使用此UUID进行传输:E2C56DB5-DFFB-48D2-B060-D0F5A71096E0和标识符为:hello
我发现这篇关于AirLocate的文章也很有用: AirLocate只查找特定的UUID吗?
是的,可能的。 看看这个github项目https://github.com/nolim1t/iBeaconAdvertisement
在El Capitan(OS X 10.11)下为我工作的Mac电脑上唯一的工具是iBeaconSwiftOSX 。 也据报道在优胜美地(OS X 10.10)下工作。 使用的(免费)iOS扫描工具是Eurelis的iBeacon Loc 。
仅供参考: 在iOS上,扫描仪必须search由iBeacon广告的UUID和主要/次要的特定组合 。 确保扫描仪设置和iBeacon设置匹配。