【发布时间】:2014-10-12 14:04:28
【问题描述】:
我需要一种方法来简单地获取纬度和经度。我正在开发我的第一个应用程序...你能告诉我我的做法是否正确吗?
这是我的方法:
private void getCoordinates() {
getCurrentLocation();
boolean gpsEnabled = lManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean netEnabled = lManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!gpsEnabled && !netEnabled && location != null) {
Builder alarm = new AlertDialog.Builder(this);
alarm.setTitle("Error");
alarm.setMessage("Localization OFF").create().show();
} else if (location != null && (gpsEnabled || netEnabled)) {
lManager.removeUpdates(lListener);
lat = String.valueOf(location.getLatitude());
lon = String.valueOf(location.getLongitude());
} else {
Builder alarm = new AlertDialog.Builder(this);
alarm.setTitle("Error");
alarm.setMessage("Localization OFF").create().show();
}
}
private void getCurrentLocation() {
lManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
lListener = new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onLocationChanged(Location loc) {
location = loc;
}
};
LocationProvider gpsProvider = lManager.getProvider(LocationManager.GPS_PROVIDER);
if (gpsProvider != null) {
boolean gpsEnabled = lManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean netEnabled = lManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!gpsEnabled && netEnabled) {
lManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, lListener);
location = lManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
} else if (gpsEnabled) {
lManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, lListener);
location = lManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
}
} else {
Builder alarm = new AlertDialog.Builder(this);
alarm.setTitle("Error");
alarm.setMessage("GPS provider not supported").create().show();
}
}
如果您发现任何错误或给我任何建议,请修复它。
【问题讨论】:
-
那里没什么用,有些回答只讲GPS,有些回答不完整
-
您的代码中是否有任何特定的内容不起作用?
-
我不知道...我自己做的,它可以工作...但我不确定它的编码是否正确。我能做得更好吗?
-
这里有一些可以帮助你的东西 - developer.android.com/guide/topics/location/…
标签: android networking localization gps latitude-longitude