2010-09-13 79 views
3

我無法在iphone應用程序中保持wifi連接30分鐘後斷開連接,但需要在用戶鎖定時運行。讓iphone/iphone保持鎖定狀態iphone

該應用通常不會休眠,但如果用戶如此選擇,他們可能會鎖定顯示器。我正在爲應用程序添加一項新功能,以1秒的間隔通過網絡發送數據。在此之前,該應用沒有網絡需求,並且在用戶鎖定的情況下,它已按需要運行(音樂,基於計時器的流程)。

答案似乎是在這裏:
Wifi connection doesn't stay alive when asleep, with iOS4

但添加UIRequiresPersistentWifi布爾值Info.plist的超時溢出的WiFi(我測試的觸摸,iOS4.02)30後不保留它即使在應用程序忙於通過連接發送數據時也是如此。也許這隻適用於顯示器自己睡,而不是用戶鎖?

相關,我認爲沒有辦法在任何時間間隔「攪動」顯示器?用戶按回家按鈕足以帶回WiFi;解鎖是沒有必要的。

此外,我已經閱讀過WWDC發佈的網站上的UIRequiresPersistentWifi適用於保持活力的3G。任何人都能驗證?

感謝

+1

原來,儘管文檔聲明UIRequiresPersistentWiFi將使應用程序的連接保持活動,但根據Apple開發論壇的說法,屏幕鎖定時不可能。布萊什。 – ransomweaver 2010-09-14 01:25:38

+0

我的解決方案是,由於所需的功能是iPhone獨有的功能,因此可以實現一個開關,以允許接近傳感器使顯示屏變暗。如果設備在應用程序運行時長時間放置,這可以節省果汁。 – ransomweaver 2010-09-15 19:57:54

回答

1

你的應用程序可能會得到由OS用戶活動的足夠長的時間後暫停。

在iOS 4.x中,某些類型的應用程序在顯示器被鎖定時未掛起(音樂播放器,VOIP等)。註冊爲VOIP類型應用程序的應用程序可能被允許保留持久性網絡長時間連接。然而,蘋果可能會要求應用程序實際提供一些VOIP功能,以便在提交審查的任何應用程序中註冊該類型。

+0

將一個名爲UIBackgroundModes的數組添加到info.plist中,使用「voip」成員不會使wifi繼續運行。不過,我認爲它不應該有。爲了澄清,當30分鐘超時發生時,我的應用程序不在後臺。它是活動的應用程序,顯示器由用戶鎖定。 – ransomweaver 2010-09-13 17:30:01

+0

此外,該應用程序鎖定時正常工作,除了消失的網絡。它還使用核心數據存儲數據,並正確記錄WiFi睡眠後的時間段內的數據。該應用的音頻方面正確執行。 – ransomweaver 2010-09-13 17:32:54

0

是否有一些活動需要您執行網絡活動?從iOS5開始,我們注意到即使我們發送網絡數據包(心跳定時器),iOS 5也會在鎖定設備後將其封鎖。

需要注意的是,需要VoIP的服務會繼續接聽電話,並且當您的手機處於睡眠模式或鎖定狀態時,會發出通知。這意味着WiFi並未完全關閉。我不知道這是怎麼發生的。

作爲一種替代方案,您可以使用您的網絡提供商的數據載體作爲WiFi的替代方案,以防WiFi出現故障。使用UIRequiresPersistentWiFi,您只需通知iOS5您需要使用WiFi來運行您的應用程序,而其他任何內容都不表示您的屏幕是否處於開啓或關閉狀態。爲了讓您的手機免受自動鎖定,您可以使用disableTimer = YES標誌來代替電池充電。

+0

您說:「需要注意的是,需要VoIP的服務可以繼續接聽電話。」 我不同意這種說法。我測試了當前的Skype應用程序,情況並非如此:當我鎖定屏幕時未收到呼叫。我可以問你,你嘗試過哪種voip應用程序? – Albrecht 2012-01-10 16:58:50

+0

對於遲到的回覆,我只試過Skype。被稱爲在鎖定的iPad上運行的Skype(下載新安裝程序),並顯示鈴聲電話。 – VijayKumar 2012-01-29 11:17:49