FusedLocationProviderClient иногда не возвращает местоположение

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

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_location);
FusedLocationProviderClient fusedLocationProviderClient = new FusedLocationProviderClient(LocationActivity.this);
fusedLocationProviderClient.getLastLocation().addOnSuccessListener(new OnSuccessListener<Location>() {
            @Override
            public void onSuccess(final Location location)
            {
                    if (location != null)
                    {
                        latitude= location.getLatitude();
                        longitude = location.getLongitude();
            latitudeStr=String.valueOf(latitude);
            longitudeStr=String.valueOf(longitude);
            Toast.makeText(LocationActivity.this,latitudeStr+" "+longitudeStr , Toast.LENGTH_LONG).show();  
        }
        else {
                        Toast.makeText(SearchActivity.this, "Your Location Could Not Be Found !!!", Toast.LENGTH_LONG).show();
                }
    }

}

Теперь иногда он возвращает правильное местоположение, но иногда показывает всплывающее сообщение «Ваше местоположение не найдено !!!» что, я думаю, подразумевает, что он не получает местоположение. Подскажите, пожалуйста, как приложение всегда будет возвращать местоположение пользователя.


person Rick    schedule 19.05.2019    source источник
comment
посмотрите здесь, stackoverflow.com/a/53276863/7917629 вы берете только последнее, и в случае, если оно существует, вам нужно сделать запрос на себя.   -  person Vadim Eksler    schedule 19.05.2019
comment
Не могли бы вы сказать мне, что вы подразумеваете под самозапросом?   -  person Rick    schedule 21.05.2019