IOS: iBeacon检测后可用的动作
IOS: Available actions after iBeacon detection
如果 locked iPhone 检测到在我的应用程序中注册的 iBeacon 信号,我的应用程序可以在其约 5-10 秒的唤醒时间内:
- 联系我的网络服务器发送一些数据?
- 发送预定义的短信?
- 访问 iPhone 的当前 GPS 位置?
是的,我可以确认您可以联系网络服务器,并访问准确的位置 (GPS),就像我在您提到的 window 期间经常这样做的那样。
我在 iOS 上发送 SMS 短信的经验较少,但我的基本理解是你根本无法在 iOS 上以自动方式发送 SMS 消息,你只能显示屏幕给用户以启动发送。当您的应用程序不在前台时,我不相信您可以执行此操作。
但是,您可以发送显示在锁定屏幕上的本地通知。
是的,应用程序可以在 phone 锁定时执行所有这些操作。
此外,如果您想在后台继续扫描和所有这些功能,您可以使用 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");
}
}
如果 locked iPhone 检测到在我的应用程序中注册的 iBeacon 信号,我的应用程序可以在其约 5-10 秒的唤醒时间内:
- 联系我的网络服务器发送一些数据?
- 发送预定义的短信?
- 访问 iPhone 的当前 GPS 位置?
是的,我可以确认您可以联系网络服务器,并访问准确的位置 (GPS),就像我在您提到的 window 期间经常这样做的那样。
我在 iOS 上发送 SMS 短信的经验较少,但我的基本理解是你根本无法在 iOS 上以自动方式发送 SMS 消息,你只能显示屏幕给用户以启动发送。当您的应用程序不在前台时,我不相信您可以执行此操作。
但是,您可以发送显示在锁定屏幕上的本地通知。
是的,应用程序可以在 phone 锁定时执行所有这些操作。
此外,如果您想在后台继续扫描和所有这些功能,您可以使用 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");
}
}