MobileMe的Find My iPhone使用了哪些API?

时间:2010-11-23 01:57:36

标签: iphone objective-c

Apple如何远程轮询手机的位置?是否有任何API允许应用程序开发人员对SDK执行相同的操作?

3 个答案:

答案 0 :(得分:5)

我的猜测是他们是私人的,没有证件的,可能是不可赎回的api。

我无法想象在没有用户同意的情况下让外部派对/应用程序即将轮询手机位置会带来巨大的安全隐患。

答案 1 :(得分:0)

如果启用了推送,iOS设备已经与Apple的推送服务器之一保持连接,并且服务器必须知道连接末端的设备(以确定要传送给它的推送通知)。建立在此基础上的最简单方法是让服务器说“告诉我你在哪里!”作为推送通知。

由于其他原因(App Store更新,强制登录页面检测),该设备也会点击Apple的服务器,但在这些情况下服务器识别设备的可能性较小。

也就是说,您可以在用户同意的情况下 执行此操作:

  • 让您的应用成为背景“voip”应用(我认为<key>UIBackgroundModes</key><array><string>voip</string></array>
  • 在应用启动时,检查您是否可以检索当前位置(我不确定如果您的应用在后台运行时会发生什么情况)。
  • 维护与服务器的“voip”连接。
  • 当服务器询问设备的位置时,再次向Core Location询问该位置并将其发送到服务器。 (我认为您还需要在UIBackgroundModes中使用“location”,或者您需要保持连接处于活动状态,可能是双向的;前者可能更容易。)

您将无法停止状态栏中显示的“位置服务”图标。通常的多任务警告也适用(如果手机内存不足,您的应用程序可能会被杀死;“voip”会导致您的应用程序稍后重新启动)。

答案 2 :(得分:0)

我很确定如果你做“voip技巧”你的应用程序将被拒绝从商店。只有当您的应用实际上是VOIP应用时才允许使用它,而不仅仅是将其用作规避后台处理限制的技术。