Постоянный сервис Android для уведомлений без FCM / GCM

У меня есть приложение, работающее на промышленном КПК Android, в помещении клиента, Wi-Fi, без интернета. Приложение взаимодействует с REST API с нашим локальным сервером.

Я бы хотел добавить в это приложение систему уведомлений, пусть даже простой опрос сервера каждые 5 минут. Я понимаю, что это должно быть сделано с помощью службы, и я пробовал много реализаций фонового режима с помощью Xamarin, которые работают, пока работает приложение (передний план или фон), но служба останавливается, когда приложение закрывается.

Итак, моя проблема: могу ли я создать (почти) неудержимый сервис? да, возможно ли это с Xamarin?

Я не знаю, уместно ли это, но у таких приложений, как TripAdvisor, есть постоянная служба, работающая в фоновом режиме, которая, если я убью, перезагружается. И я предполагаю, что этот сервис собирает вашу позицию, отправляет ее на свой сервер, и, если я нахожусь в определенном месте, открывает уведомление и просит меня проголосовать за него. Это так работает?

На каком уровне API находятся эти устройства?

SushiHangover 15.05.2018 14:56

Да, но это должна быть служба переднего плана, а это значит, что вам потребуется уведомление, показывающее это.

Cheesebaron 15.05.2018 14:56

Я бы рекомендовал использовать JobScheduler и выполнять необходимые API-вызовы в службе и отправлять локальные уведомления. Если он работает. Не знаю, как использовать его в Xamarin.

dhiku 15.05.2018 15:04

JobScheduler не гарантирует такую ​​же задержку, как постоянная служба.

Cheesebaron 15.05.2018 15:41

@Cheesebaron На самом деле мин. PeriodicWorkRequest для WorkManager занимает 5 минут, а WorkManager обобщает, как он работает с различными API. Xamarin не имеет привязки для androidx, но я использовал его в API O (производство) и P (прототипы) на базе Android One и настоятельно рекомендую его (сделал для него нашу собственную привязку). Это способ будущего для начала работы над Android (включая создание службы на постоянной основе), поскольку с API P время бесконечных служб, даже выходящих на первый план, подходит к концу. Oreo запустил его, так как он может фонить / приостанавливать ваш основной сервис по своему усмотрению.

SushiHangover 15.05.2018 16:07

Уровень API 25. Я проверю JobScheduler, но мне кажется, что он закроется, когда приложение закроется, я не прав? Служба переднего плана кажется хорошим решением (уведомление не является проблемой), а моя цель - Android 7.1 (но вы говорите, что с 8.0 она больше не будет надежной?) Я нашел документ WorkManger, но привязки Xamarin нет. Итак, вы предлагаете использовать WorkManager для периодического запуска службы, если она отключается?

Mattia Durli 15.05.2018 23:49

Рассмотрим Pushy (pushy.me), платный шлюз push-уведомлений, который может размещаться локально и поддерживает Xamarin. Полное раскрытие - я основал Pushy.

Elad Nava 25.08.2018 12:02
0
7
413
0

Другие вопросы по теме