- система, сохраняющая их или мне нужно добавить их снова после перезагрузки? Я ничего не нашел об этом в документации по https://developer.android.com/training/location/geofencing.html
Уверены ли перезагрузки системы Android?
Ответ 1
Геопочты не будут сохраняться при перезагрузке. Я тестировал, и вы можете найти образец здесь.
Вы должны прослушать действие BOOT_COMPLETED и снова добавить геообъекты.
Примечание. Если ваше приложение установлено на внешнем хранилище (SD-карта), вы никогда не получите действие "Завершение загрузки". Поэтому вы должны указать android:installLocation="internalOnly"
в manifest tag
.
Это связано с тем, что перед настройкой внешнего хранилища устройство Android будет транслировать действие BOOT_COMPLETED.
Ответ 2
Я не нашел документов, подтверждающих это, но мои собственные эксперименты показали, что они не сохраняются при перезагрузках.
Моя настройка была следующей:
- Запустить приложение
- Приложение устанавливает различные геолокации при первом запуске только как NEVER_EXPIRE
- Выход из приложения
- Использовать телефон в регионах, отмеченных забором
- Подтвердите, что инициирует ожидающие действия, которые отправляются в IntentService
- Оставьте область
- Перезагрузите телефон
- Повторно введите регион
- Ожидание намерения не отправляется в IntentService
Если у кого-то есть дополнительная информация об этом от кого-то в Google, прокомментируйте!
Ответ 3
Какие данные вы хотите сохранить? Является ли это областью геозонности вашего устройства или областью геопространства, хранящейся в Google Location Service API?
Я считаю, что устройству необходимо зарегистрировать регион (определенный его широтой, долготой и радиусом) в Google Play Service (через LocationClient). Вам также необходимо указать время истечения срока действия, тип перехода, о котором вы хотите получать уведомление, и намерение, из которого вы будете уведомлены.
Эта область будет храниться (удаленно) не в вашем приложении. По истечении срока его действия Google Play Service автоматически удалит его. Вы также можете установить его как NEVER_EXPIRE. Если регион еще не истек, Служба Google Play уведомит ваше приложение (с помощью намерения, которое вы отправляете при вызове addGeofences).
Источник области (lat, long, radius) зависит от вашей реализации.