2016-01-22 5 views
0

Im создает приложение Cordova/Ionic, которое позволяет пользователю просматривать камеру андроидного мобильного телефона в реальном времени с помощью webrtc (peerJs).Блокировка от случайного замыкания при отключении экрана

Мне нужно разрешить устройству выключать экран после (скажем) 15 секунд и продолжать передачу видео на другое устройство Android.

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

Я решил пойти на встроенную реализацию Android, поэтому я приобрел блокировку в методе onStart(), представленном в платформах \ android \ CordovaLib \ src \ org \ apache \ cordova \ CordovaActivity.java с помощью этого кода присутствует почти в каждом учебнике

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
     wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, 
     "My wakelook"); 
     wakeLock.acquire(); 

я впервые попробовал код, приведенный выше, aquiring в SCREEN_DIM_WAKE_LOCK. И это сработало, экран никогда не отключился, и он заставил меня бесконечно отправлять видео. Это заставляет меня думать, что азартная игра с вакелоком успешна. Когда я изменил код на PARTIAL_WAKE_LOCK, экран просто отключается через 15 секунд, и видео просто зависает.

Я читал, что класс, который приобретает wakelock, должен расширять «Приложение», но этот класс CordovaActivity расширяет Activity, и я не могу сделать его другим классом, не заменяя «Activity» на «Application». Я не знаю, если это необходимо, поскольку код выше работает отлично, используя SCREEN_DIM_WAKE_LOCK.

Я попытался использовать этот плагин https://github.com/boltex/cordova-plugin-powermanagement, чтобы получить частичный замок слежения, но он делает то же самое, что и выше.

Благодаря

ответ

0

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

Смежные вопросы