我可以只从一个蓝牙广播多个ibeacon信号吗? 如何

我想用我的ipad的蓝牙模拟多个ibeacon信号,这是可能的

您不能同时发送多个传输,但您可以通过使用计时器在两个或更多个传输器之间切换来模拟这种传输。 作为iBeacon传输时,iOS设备通常每秒发送10个广告数据包。 但是接收者只希望在正常的操作中每秒至less接收一次数据包。

尝试设置一个定时器,在两台iBeacon发射机之间来回切换(打开一个,然后打开另一个)。 喜欢这个:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. 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]; }); } 

我testing了这个,它的工作原理 – 第二个iOS设备包括两个iBeacons。

如果我试图在两个标识符之间每秒切换一次以上,那么接收的iOS设备会定期丢失其中一个信标。 由于此代码每秒仅切换一次,因此接收器将不会收到两个iBeacon传输中的一个时,会有一秒多一点的间隔。 这可能会或可能不会对接收端的测距/监控产生一些意想不到的副作用。 但是你可以试试看。