2013-07-14 92 views
0

當我在手機中使用下面的代碼時,它總是選擇網絡來獲取經度和緯度,即使在Wi-Fi關閉時也沒有選擇GPS。我希望應用程序選擇最好的,運行的,準確的位置提供程序。如何獲得準確的位置提供商

LocationManager LM1=(LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    Criteria criteria = new Criteria(); 
    String provider=LM1.getBestProvider(criteria, true); 
    LM1.requestLocationUpdates(provider,500,1,this); 
    ET3.setText(provider); 

使用的權限是:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>  
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_GPS" /> 
    <uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

回答

1

如果你想最準確,檢查是否啓用了GPS。如果是,請使用它。如果沒有,請使用網絡。發送一個空白條件getBestProvider永遠不會導致你使用GPS-它會假設你不需要那個精度。

+0

謝謝你的信息,但(爲什麼和如何)當wi_fi關閉,GPS關閉時,它仍然從網絡獲取位置。請我想理解我的困惑。請給我答案。 thanx再次 – Yousif

+0

它使用3G/4G信號強度和塔位置的知識來查明你的位置在半公里左右。網絡位置不需要Wifi,它只是使它更加準確。 –

+0

@GabaSechan thanx,你是非常有幫助和有用的人。 – Yousif

相關問題