Не удается получить местоположение на мобильном телефоне Android - PullRequest
0 голосов
/ 13 марта 2012

На самом деле моя проблема в том, что иногда я могу получить местоположение, а иногда я не могу получить местоположение на реальном устройстве Android.Я использовал следующий код для получения местоположения:

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(provider);

Мне нужно получить местоположение при запуске приложения.Я не знаю, почему иногда это терпит неудачу.Как решить эту проблему?

Ответы [ 2 ]

1 голос
/ 19 марта 2012

@ jsmith прокомментировал мой вопрос,

Увеличьте ваши требования к питанию и убедитесь, что вы проверяете, где вы можете получить сигнал сети или GPS.Если это помогает, то это просто случай, когда датчики не получают достаточного количества сигналов для определения местоположения.

Это правильный ответ на мой вопрос.Теперь работает нормально.

0 голосов
/ 14 марта 2012

Вы забыли запросить «Обновления местоположения», используйте эту функцию после объявления LocationManager:

locationManager.requestLocationUpdates(provider, 0, 0, this);

и вы должны позволить классу реализовать LocationListener, а затем добавить эту функцию:

public void onLocationChanged(Location location) {
//get the location here
}

Если вы не хотите получать местоположение повторно, после получения местоположения вы должны прекратить «Обновления местоположения» следующим образом:

locationManager.removeUpdates(this);

Если вы хотите, чтобы приложение всегда слушало «Обновления местоположения», вам лучше запросить обновления в onResume() и удалить обновления в onPause() & onDestroy()

Удачи

...