计步器在背景中

时间:2013-07-22 10:33:39

标签: ios objective-c background accelerometer

我知道这已被问过100万次了,但我无法想出来。

所以我需要建立一个计步器应用程序并让它继续计算步骤事件,如果他们将应用程序发送到de background超过10分钟。

客户端根本不想使用GPS,也不会播放静音,因为Apple可能会拒绝它。

有没有人知道如何做到这一点?

客户端正在使用Runtastic计步器应用程序作为参考,我一直在分析它,它不使用也不使用位置,音乐和在后台运行超过10分钟。

有任何线索吗?这样做真的不可能吗?有可能Runtastic的人同意苹果使用一些秘密API让它在后台运行吗?

3 个答案:

答案 0 :(得分:20)

我看了Runtastic计步器,它的Info.plist文件中有以下内容:

<key>UIBackgroundModes</key>
<array>
    <string>audio</string>
    <string>external-accessory</string>
</array>

所以基本上,他们做音频技巧,他们声称与外部配件绑定。

我不想说明显的,但你的问题似乎是“这些是规则,但我不想跟随它们。我怎么绕过它们?”答案似乎是:“在满足其中一个标准之前,为您的应用添加功能。”来自文档:

  

在iOS中,只允许特定的应用类型在后台运行:

     
      
  • 在后台播放用户可听内容的应用,   例如音乐播放器应用
  •   
  • 让用户了解其内容的应用   始终位置,例如导航应用
  •   
  • 支持的应用   互联网协议语音(VoIP)
  •   
  • 需要下载和处理新内容的报亭应用
  •   
  • 从外部附件接收定期更新的应用
  •   

因此,请在您的应用中添加其中一项功能。添加设置以在每走一英里后发出祝贺声。默认情况下将其关闭。这应该有资格获得音频播放豁免。可以选择捕获位置数据,以标记用户在行走1,000英里时的位置。默认情况下关闭此功能。这应该符合位置标准。添加一个功能,从RSS源下载鼓舞人心的Haiku,或者从runnersworld.com下载头条新闻。这可能会让你了解新内容的原因。这并不难。只需提出一些简单的十行代码功能即可让您入门。用你的想象力。

答案 1 :(得分:1)

您可以查看关于声明您应用支持的后台任务的Apple docs 。您还可以查看有关使用背景模式的this tutorial

答案 2 :(得分:0)

如果你有服务器端,你可以通过发送静音推送和唤醒你的应用程序来避免在后台运行你的应用程序,只是为了报告步数。

您可以注册静音推送而无需用户确认获取推送消息,因为他们看不到它们。