簡體   English   中英

是什么決定狀態欄中是否存在iPhone位置服務圖標?

[英]What determines the presence of the iPhone Location Services icon in the status bar?

這是我的情況。 我正在開發一個使用Core Location來確定設備位置的iPhone應用程序。 有一個圖標:位置服務圖標,顯示在設備的狀態欄中。 我知道該圖標的目的是告訴用戶當前正在使用位置服務。 對於敏銳的用戶,這意味着電池壽命縮短。 出於這個原因,我想確保只有當我的應用實際使用位置服務時才會顯示圖標。

輸入混亂。 作為開發人員,我們無法通過官方SDK訪問狀態欄。 這意味着操作系統將根據應用程序的行為自動顯示該圖標。 盡我所能,我找不到明確定義該圖標顯示的原因。

目前,圖標出現在我的應用代表獲得控制權之前,只要應用程序已安裝,運行與否,它就會保持可見狀態。 這顯然是最糟糕的情況,它讓我懷疑我使用CLLocationManager 我會詳細說明我的用法,但作為極端情況,我嘗試刪除CoreLocation框架(以及MapKit框架,我懷疑它也使用CoreLocation),以及與位置相關的所有代碼。 在我刪除應用程序之前,應用程序仍會顯示圖標並保持不變。 然后,我創建了一個全新的應用程序,除了更改應用程序標識符以匹配我的應用程序的標識符之外,不做任何更改。 圖標仍然出現。 我更改了標識符以使用我的一個不使用位置的應用程序的標識符,並且沒有顯示圖標。 我確實確保在此測試期間重置設備。

這個問題真的讓我很傷心。 我無法想象應用程序ID與位置服務圖標有什么關系,但我認為其持久性沒有其他原因。 它似乎是一個隱藏真正問題的紅鯡魚,但我對真正的問題感到茫然。

這是一個更新和解決方案,我在一些擺弄之后來到。 由於我的問題顯然是操作系統在我的應用程序的ID和位置服務圖標之間建立了一些連接的問題,我嘗試重置設備的位置警告,我原本不知道我能做什么。 對於好奇,這可以通過設置應用程序,然后通用>重置>重置位置警告來完成。 重置並重新安裝應用程序后,它再次請求使用位置服務。 現在,圖標恰好出現在startUpdatingLocation並且在stopUpdatingLocation上精確消失,正如我原先預期的那樣。

我不知道最初導致這種情況的原因,我毫不懷疑這種情況本身就是一個操作系統錯誤,正如Matthew Frederick所指出的那樣,但至少在我的情況下,這種情況是可以治愈的。

有一個已知的錯誤導致了這個問題。 幾個月前我向蘋果公司報告過,並被告知這是一個已知問題的騙局。 不幸的是,似乎沒有修復。

當我看到符號出現時(我的應用程序顯示有權使用“設置”應用中的位置信息),我首先發現了它,只需在不再安裝應用程序的設備上安裝我的應用程序,甚至沒有運行它。

無論出於何種原因,設備都會在獲得位置服務許可后保留對應用的引用。

更糟糕的是,如果應用程序在過去實際獲得了權限,然后被卸載,則會安裝更新版本的應用程序,不僅會顯示圖標,而且升級的應用程序不再實際接收位置信息,因為應用程序永遠不會詢問OS用於位置許可。 它實際上被永久否定了。

對我和少數用戶來說非常令人沮喪。

您還沒有在應用的.plist的UIBackgroundModes鍵中啟用位置選項,對嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM