Если вы действительно хотите, чтобы он работал на всех устройствах, я предлагаю вам такой подход:
- Настройка обмена сообщениями Firebase
- Подпишитесь на все устройства на определенную тему, например "UPDATE_LOCATION"
- Расширить
FirebaseMessagingService
и внедрить onMessageReceive()
- Если ваше сообщение с данными содержит инструкцию по обновлению местоположения, вызовите метод для обновления местоположения из
onMessageReceive()
- Инициируйте повторяющиеся сообщенияв тему «UPDATE_LOCATION» из Firebase (задание CRON или запланированные задачи)
Это немного больше работы, чем методы, которые вы уже опробовали, но она работает на всех телефонах, а также после перезапуска устройства и обновления системы.
Дополнительным плюсом является то, что вы можете контролировать средство обновления местоположения из своего бэкэнда (не для каждого устройства, которое зависит от обновления приложения).