2014-10-30 79 views
0

我使用LocationClient方法來檢索用戶的當前位置。它工作得很好,但有時由於明顯的原因(我正在使用WIFI等)而不準確。我想知道是否確定使用位置提供程序來獲取位置。無論我處於內部還是外部,getProvider()都會返回「融合」。我只需要告訴用戶他沒有得到準確的位置,可能是因爲他在裏面。更好的是,告訴用戶提供者用於獲取他的位置。確定位置提供者 - Android

+0

您可以使用'getAccuracy'值來確定您是否有準確的位置。 – njzk2 2014-10-30 14:31:22

+0

@ njzk2:是否有算法或經驗法則可以確定返回該位置的內容? – programmerboy 2014-10-30 15:12:56

回答

0

您可以檢查是否提供商可利用isProviderEnabled方法:

 mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) 
     mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) 
+0

感謝您的回覆。您的代碼僅檢查這些提供程序是否已啓用。我的問題與你的回答略有不同:) – programmerboy 2014-10-30 15:08:57

0

檢查下面的代碼用於獲取位置提供的名單 -

List<String> matchingProviders = locationManager.getAllProviders(); 
for (String provider: matchingProviders) { 
    Location location = locationManager.getLastKnownLocation(provider); 
    if (location != null) { 
    float accuracy = location.getAccuracy(); 
    long time = location.getTime(); 

    if ((time > minTime && accuracy < bestAccuracy)) { 
     bestResult = location; 
     bestAccuracy = accuracy; 
     bestTime = time; 
    } 
    else if (time < minTime && 
      bestAccuracy == Float.MAX_VALUE && time > bestTime){ 
     bestResult = location; 
     bestTime = time; 
    } 
    } 
} 

希望這有助於你。

+0

感謝您的回答。我已經在使用類似的東西(Google推薦的獲得最佳位置的方式)。我的問題稍有不同:) – programmerboy 2014-10-30 15:15:01

相關問題