我正在为 iOS 编写一个应用程序,它要求该应用程序同时宣传 iOS iBeacon 以及同时宣传外围服务。有必要宣传该服务,而不是简单地在外围设备上发现该服务,因为该用例需要中央(用 BLE 的说法)在被 iOS 唤醒后(但仍在后台)连接到外围设备,因为靠近 iBeacon。在中心后台运行的应用程序只能通过可用服务发现外围设备,而不是发现所有外围设备 [] ;我的代码用于宣传服务或 iBeacon,但我还没有弄清楚如何同时做这两个。iBeacon 可能使用了 38 字节可用空间中的 21 字节,而根本没有
这有效(信标):
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 ];
谢谢参观!