关闭iOS应用程序以唤醒BLE

时间:2015-09-09 10:02:57

标签: ios

我们正在开发一个已注册为在后台运行的iOS应用。 这个应用程序从我们的BLE设备获取数据。一切正常,直到用户决定关闭应用程序(从"最近的应用程序"列表中滑动一下)。 从那时起,BLE设备数据不会被唤醒"我们的应用程序。 我知道这是一个黑暗的镜头,但如果有人知道解决方案或解决方法,那将是伟大的。 先谢谢

1 个答案:

答案 0 :(得分:0)

有一种方法可以唤醒手机。如果您的应用程序属于信标区域,那么

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region

上面的方法会自动调用。所以你需要发一些像#34这样的本地通知;你就在信标区附近"唤醒电话。但你必须重新进入该地区。

一旦您的应用程序进入该区域,请编写以下代码以重新启动信标进程,

[self.locationManager startRangingBeaconsInRegion:self.beaconRegion];
UIBackgroundTaskIdentifier bgTask = [[UIApplication  sharedApplication] 
                                      beginBackgroundTaskWithExpirationHandler:^{
      NSLog(@"End of tolerate time. Application should be suspended now if we do not ask more 'tolerance'");
     [[UIApplication sharedApplication] endBackgroundTask:UIBackgroundTaskInvalid];
}];

if (bgTask == UIBackgroundTaskInvalid)
{
     NSLog(@"This application does not support background mode");
} else {
     //if application supports background mode, we'll see this log.
     NSLog(@"Application will continue to run in background");
}

希望这对你有用。