Tag: cbcentralmanager

核心蓝牙状态保持和恢复不工作,无法重新启动应用程序到后台

我试图让核心蓝牙唤醒应用程序,即使它没有运行。 正如苹果指出的那样,“由于状态保存和恢复是内置在蓝牙芯片中的,因此您的应用可以select使用此function来要求系统保留您应用的中央和外围pipe理员的状态,并继续执行某些与蓝牙相关的任务即使你的应用程序不再运行,当这些任务中的一个完成时,系统将把你的应用程序重新启动到后台,让你的应用程序有机会恢复它的状态并适当地处理事件。 我添加了以下代码来join此function: myCentralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:@{ CBCentralManagerOptionRestoreIdentifierKey: @"myCentralManagerIdentifier" }]; 但是,应用程序醒来时的callback从未触发过。 -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { } -(void)centralManager:(CBCentralManager *)central willRestoreState:(NSDictionary *)state { } 这两个从来没有被称为。 我正在testing这个唤醒function的方式: 我在info.plist中添加了背景模式下的“bluetooth central”,所以BLE在后台运行。 在我的iphone 1号启动centralManager。 开始扫描。 按回家,出门,玩一些记忆沉重的游戏,在debugging日志中,我会看到:“由于内存压力终止,处理完成退出代码0”。 这是为了模拟由于内存压力,ios系统如何终止后台应用程序。 用另一个iphone 2号启动一个灯塔并开始播放。 结果:那些重新启动callback从未被调用。 任何想法,为什么这是行不通的? 如果是API问题,当您的手机靠近BLE信标时,是否有其他方法可以将您的应用程序重新启动为BLE后台? 我已经尝试使用ibeacon来唤醒应用程序,但核心蓝牙中央pipe理器不会允许您在后台连接ibeacon。 谢谢!

如何唤醒iOS应用程序与蓝牙信号(BLE)

使用BLE与CoreBluetooth(没有iBeacon),是否有一种方法来唤醒应用程序未运行的应用程序,当设备收到蓝牙信号? 我正在用redbearlab的BLE Shield( http://redbearlab.com/bleshield/ )模拟灯塔。 谢谢,DAN *更新03/05/14 * 看起来像苹果公司已经推出了与iOS 7.1的重大更新:现在iOS会为您打开您的应用程序,如果它检测到一个UUID匹配您的应用程序。 该应用程序只需要安装,它不需要运行(AppDelegate中的逻辑需要回答唤醒电话)。