You cannot start multiple transmissions at the same time, but you can simulate this by switching between two or more transmitters with a timer. iOS devices typically send 10 proposal packets per second when transferred as iBeacon. But receivers only expect packets to be received at least once per second for normal operations.
iBeacon ( , ). :
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSLog(@"We are going to simulate advertising multiple iBeacons simultaneously!");
CLBeaconRegion *iBeacon1 = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:@"2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6"] major:15555 minor:35001 identifier:@"iBeacon1"];
CLBeaconRegion *iBeacon2 = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:@"2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6"] major:15555 minor:35002 identifier:@"iBeacon2"];
iBeacons = [[NSMutableArray alloc] init];
[iBeacons addObject: iBeacon1];
[iBeacons addObject: iBeacon2];
measuredPower = [NSNumber numberWithInt:-59];
currentIBeaconNumber = 0;
self.peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self queue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)];
[self rotateAdvertising];
return YES;
}
- (void) configureAdvertisingForIBeaconNumber: (int) iBeaconNumber {
if(self.peripheralManager.state!=CBCentralManagerStatePoweredOn) {
NSLog(@"Core Bluetooth is off");
return;
}
[self.peripheralManager stopAdvertising];
NSLog(@"Transmitting as iBeacon number %d", currentIBeaconNumber);
NSDictionary *peripheralData;
peripheralData = [[iBeacons objectAtIndex:iBeaconNumber] peripheralDataWithMeasuredPower:measuredPower];
[self.peripheralManager startAdvertising:peripheralData];
}
- (void) rotateAdvertising {
[self configureAdvertisingForIBeaconNumber:currentIBeaconNumber];
currentIBeaconNumber = (currentIBeaconNumber + 1) % iBeacons.count;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1000* NSEC_PER_MSEC), dispatch_get_main_queue(), ^{
[self rotateAdvertising];
});
}
, - iOS iBeacons.
, iOS . , , iBeacon. / . .