-
1 # 泉緣0627
-
2 # 谷歌開發者1、第三方定位sdk操作
我們以高德地圖sdk作為例子,我們在定位sdk中所看到的有這麼一個操作:
這個操作是開啟高德地圖定位服務的間隔時間。這裡就不普及Android 手機服務的內容,這裡可以直接理解為一個應用使用這相關的sdk就會在後臺開啟這麼一個服務,然後根據這種配置,這個應用在未被回收之前就一直在每個兩秒鐘的時間內不停的進行定位操作。所以一般開發都會有回收機制,如果沒有被回收,那麼此服務只能根據系統自動的程序處理來延遲迴收。
根據以上情況,我們可以初步判斷出一直顯示定位的原因:
1、使用者未完全關閉帶有這類定位的應用,導致一直處於定位狀態中。
2、使用者使用的應用為開發者沒有提供回收機制的應用,導致使用者在使用過程中,定位服務只能延遲迴收,所以一直處於後臺定位狀態中。
2、開發者模擬定位許可權我們在Android 系統的開發者選項中,有一個選擇模擬位置資訊應用的這個選項。在Android 6.0以下的機器是開啟或關閉,但是在此版本之上為選擇特定的應用。
這個應用許可權為:
"android.permission.ACCESS_MOCK_LOCATION"
這個許可權可以在Android 6.0以下的機器上面無條件的新增,那麼只要添加了此許可權,那麼使用者使用請求了此許可權過後的應用的時候就會發現此應用可以無限去請求定位。正是開發者線上程中不停輪詢使用了:"locationManager.setTestProviderLocation(providerStr, mockLocation)" 這麼一段程式碼,才導致此使用者定位可以根據此應用的需要不停的進行定位處理。
特別的,如果在Android 6.0以上機器擁有的root許可權過後,也可以讓應用自行配置模擬位置的許可權!
3、解決方法:如果是第一種情況,那麼請將手機後臺全部清理掉,可以開啟手機系統的後臺,選擇XX來清理後臺程序。如果Android手機這樣操作有卡頓,那麼我們可以斷定系統已經失去了清理開發者未及時處理的後臺定位服務,我們必須重啟機器來完成處理這樣的問題。
如果是第二種情況,那麼手續,使用者要考慮一下升級Android系統,並且關閉掉開發者許可權。如果購買過後的手機發現擁有了root許可權導致的這樣的問題,那麼請解除安裝相關的應用或者刷機關閉掉root許可權!
回覆列表
肯定是某個應用在後臺呼叫定位功能了,1.
2.進入設定,安全和隱私裡關閉。
3.也可以進入設定裡面的許可權管理,自定義gps應用授權功能