[英]GPS_PROVIDER Error in Android Application
我創建了一個Android應用來檢索位置。 我嘗試使用GPS_PROVIDER,它返回null ..但是當我使用NETWORK_PROVIDER時工作順利..任何人都可以幫我解決這個問題嗎?
這是代碼
位置location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
當我用"GPS_PROVIDER"
替換"NETWORK_PROVIDER"
時,該位置變為null。
我在清單中添加了以下三個權限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
GPS位置為空可能有兩個原因
setting menu => Location & Security => Check Use GPS Satellites
激活您的GPS setting menu => Location & Security => Check Use GPS Satellites
。 根據文件
如果當前禁用了提供程序,則返回null。
確保您的GPS在設備上處於活動狀態,因此您不會收到空值。
編輯:
還可以嘗試使用GPS_PROVIDER
運行requestLocationUpdates()
,也可以使用NETWORK_PROVIDER
運行兩次。 LocationManager
以最快的方式檢索位置並停止搜索。 由於GPS位置的檢索速度比網絡位置慢,因此如果發現GPS位置因此返回null,則會立即停止。
當我用“GPS_PROVIDER”替換“NETWORK_PROVIDER”時,該位置變為null
要解決此問題,請務必啟用位置服務 :
記住文檔:
如果當前禁用了提供程序,則返回null。
如果禁用GPS,您可以使用兩個提供商,然后檢查網絡提供商:
...
myLocation = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(myLocation == null) {
myLocation = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
if(myLocation != null) {
//Get values for latitude and longitude!
}
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.