Я пишу приложение для iOS, которое требует, чтобы приложение рекламировало iOS iBeacon, а также одновременно рекламировало периферийную услугу. Необходимо, чтобы услуга рекламировалась скорее, а просто обнаруживалась на периферии, потому что для использования используется центральный (на языке BLE) подключаться к периферийному устройству после того, как iOS (но все еще в фоновом режиме) пробуждается из-за близости к iBeacon. Приложения, работающие в фоновом режиме в центрах, могут обнаруживать периферию только доступным сервисом, а не открывать все периферийные устройства []; Мой код работает, чтобы рекламировать сервис или iBeacon, но я не понял, как сделать это одновременно. Возможно, что iBeacon использует 21 байт из 38 байт доступного пространства и просто недостаточно места для рекламы маяка, а также услуги?iOS CoreBluetooth/iBeacon: Рекламировать iBeacon и периферийную службу одновременно
Это работает (маяк):
self.beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid
major:1
minor:1
identifier:@"bentboolean"];
NSMutableDictionary *dict = [[self.beaconRegion peripheralDataWithMeasuredPower:nil] mutableCopy];
[self.peripheralManager startAdvertising:dict ];
Это работает (услуга):
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@[serviceUUID] forKey:CBAdvertisementDataServiceUUIDsKey];
[self.peripheralManager startAdvertising:dict ];
Добавление двух вместе, пытаясь рекламировать обе службы в то же время не работает. Он рекламирует только Beacon, а не услугу:
self.beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid
major:1
minor:1
identifier:@"bentboolean"];
NSMutableDictionary *dict = [[self.beaconRegion peripheralDataWithMeasuredPower:nil] mutableCopy];
[dict setValue:@[serviceUUID] forKey:CBAdvertisementDataServiceUUIDsKey];
[self.peripheralManager startAdvertising:dict ];
Спасибо, что посмотрели!
Привет, вы когда-нибудь это исправили? Я не думал, что это возможно из-за возможностей Bluetooth ... – CW0007007