IOS:iBeacon 检测后可用的操作

Posted

技术标签:

【中文标题】IOS:iBeacon 检测后可用的操作【英文标题】:IOS: Available actions after iBeacon detection 【发布时间】:2015-06-11 01:06:28 【问题描述】:

如果锁定 iPhone 检测到我的应用注册了 iBeacon 信号,我的应用能否在其约 5-10 秒的唤醒时间内:

    联系我的网络服务器发送一些数据? 发送预定义的短信? 访问 iPhone 的当前 GPS 位置?

【问题讨论】:

developer.radiusnetworks.com/2013/11/13/… 文章来自2013年(ios7开始)。我不确定这些信息是否仍然有效。 【参考方案1】:

是的,我可以确认您可以联系网络服务器并访问精确位置 (GPS),因为我通常在您提到的窗口中执行此操作。

我在 iOS 上发送 SMS 短信的经验较少,但我的基本理解是,您根本无法在 iOS 上以自动方式发送 SMS 消息,您只能将屏幕呈现给用户以启动发送。当您的应用不在前台时,我不相信您可以这样做。

但是,您可以发送显示在锁定屏幕上的本地通知。

【讨论】:

您知道锁定 android 手机而不是 iPhone 的答案吗?我的应用程序能否在显示通知之前联系网络服务器并访问当前 GPS 位置?谢谢! 当然,是的。使用锁定的 Android 设备做任何这些事情都没有问题。【参考方案2】:

是的,应用程序可以在手机锁定时执行所有这些操作。

此外,如果您想在后台继续扫描和所有这些功能,您可以使用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");
  

【讨论】:

以上是关于IOS:iBeacon 检测后可用的操作的主要内容,如果未能解决你的问题,请参考以下文章

我们可以在 iOS 上检测到非 iBeacon 信标吗?

设备重启后的 IOS8 iBeacon 监控

如何检查用户的设备是不是支持和授权 iBeacon 使用以及是不是开启了蓝牙?

iBeacon 非静态 UUID

屏幕关闭时如何在 iOS 应用程序中检测 iBeacon?

iBeacons 在 iOS 中以后台模式扫描?