8

我知道这已经被问了 100 万次,但我无法弄清楚。

所以我需要构建一个计步器应用程序,如果他们将应用程序发送到后台超过 10 分钟,它会继续计算步数事件。

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

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

客户将 Runtastic Pedometer 应用程序作为参考,我一直在分析它,它既不使用位置,也不使用音乐,并且在后台运行超过 10 分钟。

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

4

3 回答 3

21

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

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

所以基本上,他们做了音频技巧,他们声称与外部配件有一些搭配。

我不想说显而易见的,但你的问题似乎是“这些是规则,但我不想遵循它们。我该如何绕过它们?” 答案似乎是:“在您的应用程序中添加功能,直到您满足其中一个条件。” 从文档:

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

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

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

于 2013-07-22T11:17:34.647 回答
1

您可以查看有关声明您的应用支持的后台任务的Apple 文档。您还可以查看有关使用背景模式的本教程。

于 2013-07-22T10:43:35.607 回答
0

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

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

于 2016-10-22T13:44:11.010 回答