Я создал приложение для Android, которое определяет местоположение по долготе и широте одним нажатием кнопки.
Сначала я получаю последнее известное чтение местоположения, которое, ради аргумента, является неточным, когда я впервые загружаю приложение / включаю gps.
Что я хотел бы знать, так это как ждать, пока оно будет точным, как на картах Google, когда вы получаете тостовое сообщение «Ожидание местоположения».
Если вы видите, как можно улучшить код, это также будет полезно.
Код для справки:
public class Clue extends Activity {
public static double latitude;
public static double longitude;
Criteria criteria;
LocationManager lm;
LocationListener ll;
Location location;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.questions);
criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
ll = new MyLocationListener();
lm.requestLocationUpdates(lm.getBestProvider(criteria, true), 0, 0, ll);
}
private boolean weAreThere() {
location = getLocation();
longitude = location.getLongitude();
latitude = location.getLatitude();
return inCorrectPlace(param);
}
private Location getLocation() {
lm.requestLocationUpdates(lm.getBestProvider(criteria, true), 0, 0, ll);
return lm.getLastKnownLocation(lm.getBestProvider(criteria, true));
}
}
public class MyLocationListener implements LocationListener
{
public void onLocationChanged(Location loc)
{
Clue.longitude = loc.getLongitude();
Clue.latitude = loc.getLatitude();
}
}
Спасибо за чтение, все ответы будут оценены.
Бен