iOS10 以上蓝牙的回连出问题了!设备在关机、手机蓝牙关闭后再开启,会调用 retrievePheripheralsArr = [self.manager retrievePeripheralsWithIdentifiers:@[[CBUUID UUIDWithString:ancsUUID]]];方法,但却不会返回数据!
以下是对上述方法的数组中数据获取:
if (retrievePheripherals.count != 0)
{
for (CBPeripheral *p in retrievePheripherals)
{
if ([p.identifier.UUIDString isEqualToString:ancsUUID])
{
self.myPeripheral = p;
[self.manager connectPeripheral:self.myPeripheral options:nil];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isANCSPeripheral"];
return;
}
}
}
自己找到原因了。系统自己回传的不是ANCSUUID(通知中心服务 UUID),而是CBUUID(core-bluetooth UUID)。传入数据不对,所以在调用方法后不会返回数据 所以不是苹果的锅~
iOS10 以上 权限 加强,必须使用ANCSUUID