2013-07-22 200 views
7

我知道這已被問了100萬次,但它只是不可能找到我。在後臺計步器

所以我需要建立一個計步器應用程序,並讓它繼續計數步驟事件,如果他們將應用程序發送到背景超過10分鐘。

客戶端根本不想使用GPS,也不會播放無聲音頻,因爲Apple可能會拒絕它。

有沒有人有和想法如何做到這一點?

客戶端將Runtastic計步器應用程序作爲參考,我一直在分析它,它不使用,也不使用位置,也沒有音樂,並在後臺運行超過10分鐘。

任何線索?這樣做真的是不可能的嗎? Runtastic的人可能會認同蘋果使用一些祕密API讓它在後臺運行?

回答

19

我看着透過Runtastic計步器,並在其Info.plist文件中的以下內容:

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

所以基本上,他們做的音頻伎倆,他們要求一些搭配與外部附件。

我討厭說明明顯的問題,但你的問題似乎是「這些是規則,但我不想跟隨他們,我怎樣繞過他們?答案似乎是:「添加功能到您的應用程序,直到您符合其中一個標準。」從文檔:

在iOS中,只有特定的應用程序類型被允許在後臺運行:

  • 應用程式播放音頻內容給用戶,而在後臺,音樂播放器等 應用
  • 應用程序,使用戶瞭解其 位置的時刻,如導航應用
  • 應用支持 互聯網語音協議(VoIP)
  • 需要下載和處理新的內容,從外部附件

接收定期更新

  • 應用報亭應用,因此增加的那些功能,以您的應用程序之一。在每走一英里後添加一個設置,以播放祝賀噪音。默認情況下關閉它。這應該符合您的音頻播放豁免條件。有一個選項來捕獲位置數據,以標記用戶走過1,000英里時的位置。默認情況下關閉此功能。這應該符合位置標準。添加一個功能,從RSS提要下載勵志Haiku,或從runnersworld.com的頭條新聞。這可能會讓你瞭解新內容的原因。這並不難。只要想出一些微不足道的十行代碼功能就可以讓你入門。動用你的想象力。

  • +0

    非常感謝您,我會進一步調查外部附件。我希望按照您的建議使用位置,只是客戶不會使用GPS,只有上帝知道爲什麼。 – Ecarrion

    +0

    你搖滾ipmcc。它爲我工作。 –

    +0

    遵守規則意味着偉大的應用程序想法被壓扁。感謝這一點,現在我必須弄清楚如何爲我做這個工作。 –

    1

    您可以檢查Apple docs聲明您的應用程序支持的後臺任務。您也可以檢查this tutorial關於使用背景模式。

    +1

    我知道,我看過像10倍的文件,並根據他們那裏就是做我想做的沒有合法的方式,這我明白。但客戶如果癡迷這是可能的,因爲Runtastic計步器是這樣做的。 – Ecarrion

    +0

    Runtastic是否有可能使用上述模式之一,但您沒有意識到? – Peres

    +0

    據蘋果,如果你不使用的應用程序的真正目的,這些方法會被拒絕,也應用沒有要求我的位置,不播放音樂,因爲我可以使用它,而我打我的音樂,沒有請求bluethooth訪問,我不知道如何知道他們是否在做VOIP,但我不這麼認爲,因爲沒有使用麥克風。所以我沒有想法。 – Ecarrion

    0

    如果你有一個服務器端就可以避免本身在後臺運行你的應用程序,通過發送一個無聲的推動和喚醒您的應用程序只報告了階數。

    您可以無需用戶確認收到推送消息,因爲他們看不到他們的沉默推註冊。