Я просто создал приложение для Android, которое показывает веб -просмотр, который загружает URL -адрес веб -страницы LAN HTML/JS, которая является клиентом RDP Guacamole с использованием Guacamole Common JS. Я получил все, что работает отлично, но когда экран планшета Lenovo M9 (последняя версия) ложится спать (закрывая Smart Cover), когда я оставляю закрытую обложку на 5-6 минут или более, подключение WebSocket. Загрузка Web-View с кодом Guacamole JavaScript работает Отключает и должен восстановить подключение. Никогда не отключается, когда экран включен даже через 24 часа. > // CPU Wake Lock
wakelock = powermanager.newwakelock (
powermanager.partial_wake_lock или powermanager.on_after_release,
"Приложение: cpuwakelock"
).apply {
setReerenceCounted (false)
accire ()
} < /p>
// wifi lock
wifilock = wifimanager.createwifilock (
wifimanager.wifi_mode_full_high_perf,
"Приложение: wifilock"
).apply {
setReferenceCounted (false)
accire ()
} < /p>
websocket gove-alive Pings: < /p>
kotlincopyprivate al websockecocketalivehandler = handler (looper.getmainlooper ())
private val Websocket_ping_interval = 30000L // 30 секунд < /p>
private valsockecocketakeAliverunnable = object: runnable {
overde fun run () {
webview.evaluatejavascript мило > if (window.ws && window.ws.readystate === 1) {
console.log(''ceeping WebSocket Alive ');
window.ws.send('pip'sping't'tiplion');;br />}
"". > websockeckekealivehandler.postdelayed (this, websocket_ping_interval)
}
} < /p>
Служба переднего плана с Wake Locks: < /p>
kotlincopyclass websocketservice: service () {
private lateinit var wakelock: powermanager.wakelock
private lateinit var wifilock: wifimanager.wifilock < /p> < /p> > Br /> override fun onCreate() {
super.onCreate()
setupWakeLocks()
startForeground(NOTIFICATION_ID, createNotification())
}
< /code>
} < /p>
сигнал тревоги для Keep-alive: < /p>
kotlincopyprivate fun made chade keartalive () {
armidmanager.setRepeating (
alarmmanager.elapsed_realtime_wakeup,
systemClock.elapsedRealtime () + KEEP_ALIVE_INTERVAL,
KEEP_ALIVE_INTERVAL,
KeepALivePendingIntent
)
} < /p>
Соответствующие разрешения манифеста: < /p>
xmlcopy
< /p>
< /li>
< /ol>
Несмотря на эти реализации, соединение WebSocket по-прежнему падает примерно через 5-6 минут экрана. < /p>
Любые предложения о том, что еще я мог Постарайтесь поддерживать соединение WebSocket во время сна? Одна вещь сторонняя сторона Суперок Приложение Kiosk, если я настраиваю свое приложение для Android в качестве приложения для киоска с SureLock, оно работает идеально, даже если я выключаю свой экран, оно всегда подключено и никогда не отключается, независимо от того, как давно экран остается спать. Так что это говорит мне, что это определенно возможно, и проблема - мой код приложения Android.
Подробнее здесь: https://stackoverflow.com/questions/794 ... reen-sleep
Android 13 планшет предотвращает WebSocket в WebView Densonce на экране Sleep Sleep ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как синхронизировать физический планшет с Android Studio по разрешению
Anonymous » » в форуме Android - 0 Ответы
- 35 Просмотры
-
Последнее сообщение Anonymous
-