任何人都可以告诉我反向地理编码器的工作原理。我有使用getFromlocation和getLastKnownLocation来查找地址的代码。问题是我不知道如何使用OnLocationChanged以及如何在我不需要时禁用侦听器。过去两天我完全糊涂了。如果任何人可以通过完整的示例或链接为我提供一些好的资源,那就太棒了。
Geocoder geocoder = new Geocoder(
TrackLogic.this.getApplicationContext(),
Locale.getDefault());
Location locationGPS = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Location locationNetwork = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
Log.d(TAG, "geocoder works");
答案 0 :(得分:0)
首先,您需要获取LocationManager实例以及要用于执行位置查找的提供程序的名称。例如:
String provider = LocationManager.NETWORK_PROVIDER;
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
接下来,您可以像这样调用requestLocationUpdates(...):
locationManager.requestLocationUpdates(provider, 1000, 0, this);
这可以在主线程上调用,因为(我认为)系统将使用后台线程上的指定提供程序进行位置查找。找到位置后,Android系统将调用onLocationChanged(...)回调,您需要覆盖该回调。由于您正在尝试进行地址查找,因此请输入:
Geocoder geocoder = new Geocoder(this);
geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 10)
哪个可以帮到你找到你想要的东西。
使用位置服务后,您可以致电
locationManager.removeUpdates(this)