Привет Я использую следующий код, чтобы получить широту и долготу последнего местоположения.
Иногда он работает, но время от времени возвращает ноль. Я буду сидеть и тестировать его в одном и том же месте в течение нескольких минут, и один раз он будет работать нормально, в следующий раз он выйдет нулевым.
Как я тестирую это следующим образом:
Ожидание загрузки действия (приведенный ниже код запускается при создании действия)
Затем я пу sh пункт меню, который получает местоположение (широту и долготу), которое было вычислено в Создает и передает его с намерением в другое действие.
В некоторых случаях это падает, потому что значения lat и long равны нулю.
Возможно, потому что я иногда слишком быстро нажимаю кнопку меню а метод по созданию не закончен?
Спасибо
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
fusedLocationProviderClient.getLastLocation().addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
dblLatitude = location.getLatitude();
dblLongitude = location.getLongitude();
}
});
} else {
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSION_REQUEST_FINE_LOCATION);
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, MY_PERMISSION_REQUEST_COARSE_LOCATION);
}