向 iBeacon 广告包添加数据

Add data to iBeacon Advertising Packet

如何通过iBeacon Advertising Packet添加数据(比如广播它的名字)?

我目前的情况:我有 3 个发射器和 1 个接收器。但是我无法区分它们,除非我将发射器一一打开或关闭。

如何向接收者广播信息?以及如何检索此类数据?

接收方代码如下(在App Delegate didFinishLaunchingWithOptions:中):

NSUUID *beaconUUID = [[NSUUID alloc] initWithUUIDString:@"E2C56DB5-DFFB-48D2-B060-D0F5A71096E0"];
NSString *regionIdentifier = @"us.iBeaconModules";
CLBeaconRegion *beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:beaconUUID identifier:regionIdentifier];

self.locationManager = [[CLLocationManager alloc] init];
if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
    [self.locationManager requestAlwaysAuthorization];
}
self.locationManager.delegate = self;
self.locationManager.pausesLocationUpdatesAutomatically = NO;
[self.locationManager startMonitoringForRegion:beaconRegion];
[self.locationManager startRangingBeaconsInRegion:beaconRegion];
[self.locationManager startUpdatingLocation];

你不能用 iBeacons 做到这一点 api -- 如果你 'drop down' 到 BLE 层

你可以指定自定义数据

可以通过设置beacon的majorminor参数来区分。

您正在使用 UUID @"E2C56DB5-DFFB-48D2-B060-D0F5A71096E0" 所以我可以假设您有 RedBear Beacon。

如果是这样,您可以下载 app 并配置您的信标(主要、次要、uuid 等)。

编辑: 正如@Daij-Djan 所写——您可以使用 CoreBluetooth 并通过服务和特征的 UUID 接收名称、电池电量和其他参数。 例如,您可以阅读 RedBear 信标的服务和特性描述 here