Мы используем locationservice в нашем приложении Android, чтобы излучать GPS-координаты каждые 8 секунд через websocketcocecocecocecocecocecocecocecocecocet (OKHTTP) . />
бэкэнд ожидает последовательных обновлений местоположения для :
- Движение по отслеживанию/устройство в реальном времени
- Живое движение на панели управления администратором/клиентом
- Неустойчивый статус (в автономном режиме/неактивном)
/> Пропущенные сервисные события (например, истечение срока поездки, распределение Rider) < /li>
< /ul>
Что мы попробовали < /strong> < /h3>
Настройка службы передней плат. startForeground() with persistent notification
[*]Verified that notification stays visible
[*]Still gets killed silently on some OEMs (e.g., Xiaomi, Vivo)
- Requested ignoreBatteryOptimizations
- Manually whitelisted the app in system settings
- Improved runtime only slightly (~10–20% increase)
Socket Reconnection Logic
[*] Реализованное переподключение с использованием obhttp WebSockEcketListener[*] Reconnects onfailure () , с экспоненциальным отступлением
[*] Оптимизация < /strong> < /h4>
Избегал тяжелой работы на основной потоке во время холодного запуска < /li>
Отложенные sharedpreferences < /code> чтения и диапазон JSON < /li>
помог с загрузкой, но не предотвращали выпадающие в локации < /li> < /br /ul>
< /br />
. /> ⚠, наблюдаемые проблемы
Silent Locationservice отказ
уведомление остается активным, но обновления местоположения
[*]
. Запустил
[*] режим дузы и блокировку экрана часто приостанавливает обновления местоположения через 3–5 минут
сетевой переключатель (Wi-fi ↔ Mobile) вызывает сока в списке без переключения (). /> < /li>
< /ul>
[10:42:05] Location update emitted: lat=1.234, lng=103.123
[10:42:13] Location update emitted: lat=1.235, lng=103.124
[10:44:52] No updates for ~2 minutes
[10:45:03] WebSocket onFailure: java.net.SocketException: Connection reset
[10:45:05] Reconnection attempt failed silently
< /code>
Как предотвратить молчащее обслуживание на переднем плане < /strong>, особенно на агрессивных OEMS? Государства?>
Подробнее здесь: https://stackoverflow.com/questions/796 ... sible-sock