【发布时间】:2015-06-11 01:06:28
【问题描述】:
如果锁定 iPhone 检测到我的应用注册了 iBeacon 信号,我的应用能否在其约 5-10 秒的唤醒时间内:
- 联系我的网络服务器发送一些数据?
- 发送预定义的短信?
- 访问 iPhone 的当前 GPS 位置?
【问题讨论】:
-
文章来自2013年(iOS7开始)。我不确定这些信息是否仍然有效。
如果锁定 iPhone 检测到我的应用注册了 iBeacon 信号,我的应用能否在其约 5-10 秒的唤醒时间内:
【问题讨论】:
是的,我可以确认您可以联系网络服务器并访问精确位置 (GPS),因为我通常在您提到的窗口中执行此操作。
我在 iOS 上发送 SMS 短信的经验较少,但我的基本理解是,您根本无法在 iOS 上以自动方式发送 SMS 消息,您只能将屏幕呈现给用户以启动发送。当您的应用不在前台时,我不相信您可以这样做。
但是,您可以发送显示在锁定屏幕上的本地通知。
【讨论】:
是的,应用程序可以在手机锁定时执行所有这些操作。
此外,如果您想在后台继续扫描和所有这些功能,您可以使用UIBackgroundTaskIdentifier
它将在后台继续扫描,直到检测到任何信标。一旦没有可用的信标,它就会在容忍时间结束时停止在后台扫描。
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSLog(@"=== DID ENTER BACKGROUND ===");
UIBackgroundTaskIdentifier bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
NSLog(@"End of tolerate time. Application should be suspended now if we do not ask more 'tolerance'");
}];
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");
}
}
【讨论】: