Eug*_*ene 1 objective-c core-location ibeacon
我的问题基本上是 - 如何修改iBeacon的默认设置,如major,minor和RSSI?
dav*_*ung 14
根据iBeacon的含义,有不同的方法来设置这些值:
硬件iBeacons
每个Beacon供应商都有不同的设置这些值的方法.有些通过蓝牙服务进行更改,通常使用专有的iOS或Android应用程序进行管理.(示例包括Radius Networks的电池供电和USB信标以及TwoCanoes信标.)Radius Networks的PiBeacon包含一个带有包含标识符的可编辑文件的SD卡.像Estimote这样的其他供应商使用无法更改的固定UUID创建信标.由于没有标准机制,因此没有用于在所有信标类型上设置标识符的通用工具.
iOS软件iBeacons:
您可以使用以下代码设置这些值:
CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:@"2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6"] major:1 minor:1 identifier:@"com.radiusnetworks.iBeaconExample"];
NSDictionary *peripheralData = [region peripheralDataWithMeasuredPower:-55];
[_peripheralManager startAdvertising:peripheralData];
Run Code Online (Sandbox Code Playgroud)iOS CLBeacon类
所述CLBeacon类不旨在创建或由用户修改-它应该通过被构造CoreLocation它检测iBeacons时.也就是说,您可以使用KVO语法强制写入其只读属性,如下所示:
CLBeacon * iBeacon = [[CLBeacon alloc] init];
[iBeacon setValue:[NSNumber numberWithInt:1] forKey:@"major"];
[iBeacon setValue:[NSNumber numberWithInt:1] forKey:@"minor"];
[iBeacon setValue:[NSNumber numberWithInt:-55] forKey:@"rssi"];
[iBeacon setValue:[[NSUUID alloc] initWithUUIDString:@"2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6"] forKey:@"proximityUUID"];
NSLog(@"I constructed this iBeacon manually: %@", iBeacon);
Run Code Online (Sandbox Code Playgroud)
但是,如果你强迫CLBeacon以不同的方式使用类,那可能意味着你做错了.
完全披露:我为Radius Networks工作.
| 归档时间: |
|
| 查看次数: |
4742 次 |
| 最近记录: |