我正在使用iPhone 5S上的蓝牙LE,并已经完成了以下步骤:
我有一个蓝牙外设,并将其配置为在所有三个蓝牙广播通道(37、38和39)上每20毫秒广告一次。
我在Info.plist中配置了我的应用程序,UIBacgroundModes = bluetooth-central
我已经开始扫描PeripheralsWithServices,如下所示
代码:
NSDictionary *options = @{
CBCentralManagerOptionRestoreIdentifierKey:@"myCentralManagerIdentifier",
CBCentralManagerScanOptionAllowDuplicatesKey:[NSNumber numberWithBool:YES]
};
self.manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options];
[self.manager scanForPeripheralsWithServices:[NSArray arrayWithObject:[CBUUID UUIDWithString:@"<uuid removed>"]] options:options];
当前状态为:
在前台模式下,当我启动我的外设时,应用程序很快接收到广告消息(在一秒钟内)。
在后台模式下,应用程序有时会在启动外设后的10秒内接收到广告消息(即使这很糟糕也可以接受),但经常很长时间都无法接收到广告消息(几分钟或更长时间),这对应用程序来说是不可接受的。
问题是:
是否有办法增加iOS在后台扫描蓝牙4.0 LE外设的速率?因为我认为没有公共API可以做到这一点,所以我正在寻找一个苹果未公开发布的私有API。这是针对一个内部企业应用程序,因此使用私有API完全可以接受。