我正在使用Apple核心蓝牙示例。外围设备在一台iphone设备中运行。我在一台设备上运行cbcentral客户端应用程序。当两个应用程序处于前台状态时配对都很好。我需要的是当我运行客户端时在后台的cbcentral客户端,没有调用委托方法,其中我提到了本地通知。通知不是以后台模式进入的。 我可以像运行NSUrlConnection一样使用NSOperation来运行蓝牙委托方法吗?它会在最新的iOS版本中运行吗?我查了一下,但它没有用。
代码:
-(void) peripheral:(CBPeripheral *)aPeripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
{
..............
...............
UILocalNotification *localNotif = [[UILocalNotification alloc] init];
localNotif.fireDate = [itemDate dateByAddingTimeInterval:-(minutesBefore*60)];
localNotif.timeZone = [NSTimeZone defaultTimeZone];
localNotif.alertBody = @"hi";
localNotif.alertAction = NSLocalizedString(@"View Details", nil);
localNotif.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
..............
}
答案 0 :(得分:1)
我相信您所寻找的是核心蓝牙UIBackgroundModes
here。
另外,您可能需要查看Core Bluetooth and backgrounding: Detection of a device and triggering an action, even after being days in background mode? 和 What exactly can CoreBluetooth applications do whilst in the background?
核心蓝牙背景模式适用于iOS 5或更高版本。