Android 4.3 на Moto G, Android 4.4.2 на Nexus 7 2012, Android 4.4.2 на Nexus 5. Android Studio 0.4.
Я не хочу получать регулярные обновления местоположения, я просто хочу точное местоположение, когда пользователь нажимает кнопку.
Я последовал этому примеру: https://developer.android.com/training/location/retrieve-current.html
В файле манифеста:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Я проверяю, что Службы воспроизведения доступны с помощью GooglePlayServicesUtil.isGooglePlayServicesAvailable
В основном действии:
//in activity onCreate method
mLocationClient = new LocationClient(this, this, this);
@Override
protected void onStart() {
mLocationClient.connect();
super.onStart();
}
@Override
protected void onStop() {
mLocationClient.disconnect();
super.onStop();
}
//in button onclick method
mCurrentLocation = mLocationClient.getLastLocation();
У меня нет SIM-карты. Если я включу Wifi, то иногда я получаю точное местоположение. В других случаях mCurrentLocation имеет значение null.
Если отключить Wifi, тогда mCurrentLocation всегда null.
Я тестирую снаружи в нескольких местах всегда с ясным видом на небо. Я ждал три минуты в каждом месте.
Я никогда не вижу значок GPS на панели уведомлений Android в верхней части экрана.
У меня эти настройки местоположения:
Приложение GPS Test позволяет использовать GPS в закрытом помещении на одном устройстве с отключенным Wi-Fi, поэтому GPS работает:
Регистрация для обновлений местоположения, как на https://developer.android.com/training/location/receive-location-updates.html, также не работает. Зарегистрированный метод никогда не вызывался.
Что я делаю неправильно?