我知道我可以将iOS设备转换为iBeacons(Can an iOS7 device act as an iBeacon?)。不幸的是,我只有一台设备而且我的信标尚未到达。所以我想知道如何将我的MacBook Air(2011年中期,支持蓝牙4.0)转换为iBeacon用于测试目的。是否有现成的应用程序,如iOS的airlocate?提前谢谢!
答案 0 :(得分:22)
注意:这仅适用于小牛队,但在优胜美地不起作用。
Mavericks并没有在iOS 7中添加核心位置的iBeacon支持。但是,Mavericks现在可以充当BLE外围设备。鉴于iBeacon基本上是一个外设,它应该(实际上)可以使用Mavericks作为iBeacon。
要在iOS上创建iBeacon,首先要创建一个CLBeaconRegion
对象,然后使用peripheralDataWithMeasuredPower:
方法获取包含要广播的必要广告数据的NSDictionary
。如果您从iOS设备获取此NSDictionary
的内容并在Mavericks上使用它,那么您将获得iBeacon。
我创建了一个类来使这更容易,并允许您直接在Mavericks上生成广告数据字典。源代码位于https://github.com/mttrb/BeaconOSX
BLCBeaconAdvertisementData
班级获取proximityUUID
,major
,minor
和校准的功效值,并创建一个可以传递给startAdvertising:
方法的NSDictionary小牛队CBPeripheralManager
。
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/
上有一篇更详细的博客文章答案 1 :(得分:12)
到目前为止,我发现的最佳解决方案是蒂姆·达克特的这个问题:https://github.com/timd/MactsAsBeacon
抓住项目,设置UUID,主要和次要值,然后单击“广播”。真的很简单。该解决方案基于以下博文:http://www.blendedcocoa.com/blog/2013/11/02/mavericks-as-an-ibeacon/
答案 2 :(得分:4)
这可以通过OSX Mavericks实现,但不适用于Mountain Lion和早期版本的操作系统。我的公司Radius Networks有一个MacBeacon应用程序可以在Mavericks上执行此操作。
在OSX Mountain Lion中,与iOS 6+不同,没有内置支持蓝牙外围设备模式,您需要像iBeacon一样进行广告宣传。这意味着滚动你自己的低级蓝牙代码,这是不容易说的。
但是有一个适用于旧操作系统的解决方案。我将Mac上的外部蓝牙适配器与运行Linux的VirtualBox VM配对,实现了您的目标。我的公司在这里免费下载了这个虚拟机:http://developer.radiusnetworks.com/ibeacon/
答案 3 :(得分:4)
如果您想保存9.99€,请查看mttrb的最新版本的开源客户端。我添加了一些GUI,以便您可以调整所有字段。 https://github.com/deadfalkon/BeaconOSX/releases甚至还有二进制下载。
答案 4 :(得分:3)
我尝试了所有这些解决方案,但在我遵守此规定之前无法让AirLocate接收信号: https://github.com/lgaches/BeaconEmitter 并开始使用此UUID进行传输: E2C56DB5-DFFB-48D2-B060-D0F5A71096E0 并且标识符为: 喂
我发现这篇关于AirLocate的帖子也很有用: Does AirLocate only look for particular UUIDs?
答案 5 :(得分:0)
是的,可能。看看这个github项目https://github.com/nolim1t/iBeaconAdvertisement
答案 6 :(得分:0)
将Mac转变为在El Capitan(OS X 10.11)下为我工作的iBeacon的唯一工具是iBeaconSwiftOSX。据报道也在Yosemite(OS X 10.10)下工作。使用的(免费)iOS扫描实用程序是来自Eurelis的iBeacon Loc。
仅供参考:在iOS上,扫描仪必须搜索iBeacon广告的UUID和主要/次要的特定组合。确保扫描仪设置和iBeacon设置匹配。