-2
我想獲取用戶的經緯度信息。 ACCESS_FINE_LOCATION可以提供嗎? 「允許應用從位置來源訪問精確的位置,例如GPS,手機信號塔和Wi-Fi。」ACCESS_FINE_LOCATION是否提供緯度和經度信息?
那麼「GPS」提供什麼類型的數據? 我只想要用戶的經緯度信息,請告訴我如何實現它。
非常感謝。
我想獲取用戶的經緯度信息。 ACCESS_FINE_LOCATION可以提供嗎? 「允許應用從位置來源訪問精確的位置,例如GPS,手機信號塔和Wi-Fi。」ACCESS_FINE_LOCATION是否提供緯度和經度信息?
那麼「GPS」提供什麼類型的數據? 我只想要用戶的經緯度信息,請告訴我如何實現它。
非常感謝。
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");
}
你也許可以從閱讀得到這個API – franklin