小编use*_*951的帖子

iOS CoreBluetooth/iBeacon:同时发布iBeacon和外围服务

我正在编写iOS应用程序,要求应用程序同时宣传iOS iBeacon以及广告外围服务.有必要公布该服务,而不是在外设上可以发现,因为用例需要中央(用BLE说法)在被iOS唤醒(但仍在后台)后由于接近iBeacon而连接到外设.在中央运行的后台应用程序只能通过可用服务发现外围设备,而不是发现所有外围设备[]; 我的代码用于宣传服务或iBeacon,但我还没有弄清楚如何同时做两件事.iBeacon可能使用了32字节的38字节可用空间而且根本就没有

这工作(灯塔):

self.beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid 
    major:1 
    minor:1 
    identifier:@"bentboolean"];
NSMutableDictionary *dict = [[self.beaconRegion peripheralDataWithMeasuredPower:nil] mutableCopy];    
[self.peripheralManager startAdvertising:dict ];
Run Code Online (Sandbox Code Playgroud)

这工作(服务):

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@[serviceUUID] forKey:CBAdvertisementDataServiceUUIDsKey];
[self.peripheralManager startAdvertising:dict ];
Run Code Online (Sandbox Code Playgroud)

将两者加在一起,尝试同时宣传两种服务是行不通的.它只宣传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 ];
Run Code Online (Sandbox Code Playgroud)

谢谢参观!

iphone core-bluetooth bluetooth-lowenergy ibeacon

15
推荐指数
1
解决办法
5459
查看次数