【发布时间】:2014-08-15 04:43:52
【问题描述】:
在我的应用中,我需要获取用户的位置。由于我的应用程序会不断执行此操作,因此我想在某些条件下(在 GPS 和 NETWORK 提供程序之间)更改位置提供程序。我的应用会检测到此类情况并进行更改。
但是,我不确定如何动态更改它。
到目前为止,我有一个线程(除其他外,它将检查这些条件)并且我希望它也可以更改位置提供程序。到目前为止,我的代码如下:
public void run() {
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener locationController = new LocationController();
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, time, desltaDistance, locationController );
while (serviceIsRunning) {
...
if (conditionsAreMet) {
locationManager.removeUpdates(locationController);
if (provider == LocationManager.GPS_PROVIDER)
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, time, desltaDistance, locationController );
else
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, time, deltaDistance, locationController );
}
...
}
}
*LocationController 类实现 LocationListener。
但是,这似乎不是更好的方法。那么,我想知道的是:有没有更好的方法来自动更改位置提供者?
【问题讨论】:
标签: android geolocation android-location