Я знаю, что об этом говорили много раз, но ничто не помогло мне устранить проблему, из-за которой getLastKnownLocation возвращает null.getLastKnownLocation возвращает null в Android
Моя активность реализации LocationListener:
public class MainActivity extends Activity implements
GooglePlayServicesClient.ConnectionCallbacks,
GooglePlayServicesClient.OnConnectionFailedListener, LocationListener {
У меня есть это в моем OnCreate метод:
LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
И я затем попытаться получить местоположение пользователя, как это (также в OnCreate):
// Getting the Co-ordinates of the users current location
Location location = lm
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(location != null){
longitude = location.getLongitude();
latitude = location.getLatitude();
}
Я попробовал тогда:
@Override
public void onLocationChanged(Location location) {
longitude = location.getLongitude();
latitude = location.getLatitude();
}
Я что-то не хватает?
EDIT: До сих пор не работает, но код, который я пробовал:
if (lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
while (location == null) {
if (counter > MAX_TIME) {
}
else {
try {
location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
counter += 1000;
}
}
}
К сожалению, это просто время и место остается в нуле –
Убедитесь, что провайдер местоположения включен в первую очередь. Я обновил сообщение. –
Кроме того, убедитесь, что у вас есть правильные разрешения разрешений (FINE_LOCATION). –