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