-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