Ошибка добавления геофонов в Android (код состояния 1000)
Я получаю ошибку в обратном вызове onAddGeofencesResult(int statusCode, String[] geofenceRequestIds)
с statusCode = 1000
.
У меня включен GPS и мой WiFi. У меня также есть Google Play Services, и я могу отслеживать свое местоположение и запрашивать обновления. Почему я не могу добавить геозоны? Я не могу добавить геообъекты даже из примера примера документации. Я получаю следующее сообщение Toast:
"Добавить Geofences: Failure, код ошибки 1000 GeofenceRequestIds = [1,2,1,2]"
Из документации (statusCode 1000):
public static final int GEOFENCE_NOT_AVAILABLE
Служба Geofence недоступна сейчас. Обычно это происходит из-за того, что пользователь отключил доступ к местоположению в настройках > доступ к местоположению.
Постоянное значение: 1000 (0x000003e8)
Ответы
Ответ 1
Вы получаете GEOFENCE_NOT_AVAILABLE
(код "1000" ), когда пользователь не соглашается "Использовать службы геолокации Google" в "Настройки- > Местоположение- > Режим: ![enter image description here]()
Чтобы исправить это:
- перейдите в Настройки- > Местоположение- > Режим
![enter image description here]()
- set "Только устройство (используйте GPS для определения вашего местоположения)"
- установить любую другую опцию для всплывающего окна (например, "Высокая точность (использовать GPS, Wi-Fi и мобильные сети для определения местоположения" ).
Диалоговое окно
- "Использовать службы геолокации Google" отображается
- выберите "Согласен"
Ответ 2
Я получал statusCode 1000, когда пытался запустить это приложение на эмуляторе. Вещь, которая исправила это, заключалась в том, чтобы перейти в Настройки- > местоположения и доступ- > Проверить параметр включения Wi-Fi и gps на эмуляторе, и он исправит его.
Ответ 3
Немного позже, но сейчас у меня была эта проблема. Я предполагаю, что:
вы используете какой-либо фальшивый GPS на своих тестах (Lockito, эмулятор и т.д.)?
Я занимаю несколько часов, пока не узнаю, что поддельные локации, похоже, отключают поддержку Geofence! Вы не можете зарегистрировать или запустить Geofence, если вы действительно не находитесь в этом месте.
Если вы отключите поддельный GPS, поддержка Geofence снова будет включена.
Ответ 4
Размещение этого ответа, так как настройки в Android сильно изменились. У меня была эта ошибка дважды, когда я запускал эмулятор Nexus 5X с API 28. Мне удалось решить ее оба раза, выполнив следующие действия:
- Выключите ваше приложение, которое вы разрабатываете (не позволяйте ему быть в фоновом режиме)
- Перейдите в Настройки → Безопасность и местоположение → Местоположение → Дополнительно → Точность местоположения Google. Turn "Улучшить Точность положения" выключено.
![enter image description here]()
- Включите "Улучшить Точность положения"
Снова включите ваше приложение и добавление геозон работает для меня после того, как я предпринял эти шаги.
РЕДАКТИРОВАТЬ: я столкнулся с этой проблемой снова несколько месяцев спустя, иногда эмулятор упрямый и на самом деле не корректно включает точность определения местоположения, чтобы позволить Google Geofence API распознавать, что он включен. Мне нужно было включить и выключить "Повышение точности определения местоположения" как минимум 10 раз, прежде чем сработала точность определения местоположения.
Ответ 5
Вы действительно дали ответ в своем вопросе:
Служба Geofence недоступна сейчас. Обычно это происходит из-за того, что пользователь отключил доступ к местоположению в настройках > доступ к местоположению.
У меня была такая же проблема, и я просто перешел в настройки → location и убедился, что я выбираю режим высокой точности, исправляющий эту проблему.
Только режим устройства PS не достаточно хорош, он должен быть режимом высокой точности.
Надеюсь, что это поможет.
Ответ 6
Прежде всего, ваш телефон должен быть совместим:
A compatible Android device that runs Android 2.2 or higher and includes Google Play Store.
Чтобы быть уверенным, что вам нужно правильно установить службу Google Play .
Иногда, просто перезагрузка телефона может решить эту проблему.
Надеюсь на эту помощь.
Ответ 7
Я сделал глупую ошибку:
Ошибка произошла из-за того, что У устройства нет разрешения для GPS (служба определения местоположения).
Подробнее о API Geofencing здесь.
Снимки экрана для справки:
![введите описание изображения здесь]()
Надеюсь, это поможет вам понять.
Ответ 8
Ошибка 1000 продолжает появляться, как 10 раз в день, что можно сделать, чтобы удалить его У меня есть телефон Verizon, который разблокирует и использует другую сим-карту в помощь, пожалуйста