2013-07-26 46 views
-2

我想獲取用戶的經緯度信息。 ACCESS_FINE_LOCATION可以提供嗎? 「允許應用從位置來源訪問精確的位置,例如GPS,手機信號塔和Wi-Fi。」ACCESS_FINE_LOCATION是否提供緯度和經度信息?

那麼「GPS」提供什麼類型的數據? 我只想要用戶的經緯度信息,請告訴我如何實現它。

非常感謝。

+0

你也許可以從閱讀得到這個API – franklin

回答

0

LocationManager是提供對系統位置服務的訪問的類。

對於使用的LocationManager你需要以下兩種權限

ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION

ACCESS_COARSE_LOCATION提供大概的位置信息,因爲它不具有訪問GPS,它採用手機發射塔和Wi-Fi僅在電池使用和性能方面很便宜。

ACCESS_FINE_LOCATION更準確,因爲它訪問GPS併爲您提供經緯度信息,但它會消耗更多資源。

所以,如果你想獲得經緯度信息更準確地使用ACCESS_FINE_LOCATION

使用許可

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  
    <uses-permission android:name="android.permission.INTERNET" /> 

然後獲取當前位置

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    ... 

    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); 
    ... 
    } 
    @Override 
    public void onLocationChanged(Location location) { 

//Use Location information from here 

    Log.d("Latitude:" + location.getLatitude() + ", Longitude:" + location.getLongitude()); 
    } 

    @Override 
    public void onProviderDisabled(String provider) { 
    Log.d("Latitude","disable"); 
    } 

    @Override 
    public void onProviderEnabled(String provider) { 
    Log.d("Latitude","enable"); 
    } 

    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
    Log.d("Latitude","status"); 
    }