getLastKnowLocation() возвращает значение null

вот мой код, чтобы получить местоположение пользователя Пожалуйста, помогите мне, я застрял в этой части

public class MainActivity extends AppCompatActivity {
LocationManager locationManager;
String provider;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    provider = locationManager.getBestProvider(new Criteria(), true);


    Location location =locationManager.getLastKnownLocation(provider);
    if (location!=null){
        Log.i("Location","Found");
    }
    else{
        Log.i("Location","Not Found");
    }


}

}

примечание: местоположение включено в моем телефоне, я подключен к Wi-Fi, я добавил 2 разрешения пользователя для определения местоположения, включен GPS


person Abdelaziz Waheed Lasheen    schedule 19.06.2017    source источник
comment
Это почти всегда будет возвращать ноль. Единственный раз, когда этого не произойдет, если какое-то другое приложение уже использует местоположения. Если вам действительно нужно местоположение, вызовите requestLocationUpdates или requestSingleLocation и дождитесь обратного вызова.   -  person Gabe Sechan    schedule 20.06.2017
comment
Вот пример приложения, демонстрирующего методы, которые г-н Сечан упоминалось в предыдущем комментарии. Обратите внимание, что правильное использование LocationManager описано во многих книгах и курсах по разработке приложений для Android.   -  person CommonsWare    schedule 20.06.2017