Запускать внешнюю активность из службы, пока экран заблокирован - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть фоновая служба, которая имеет соединение через веб-сокет с домашним сервером.

Каждое утро этот сервер отправляет команду в мою службу, которая затем запускает VLC с URL-адресом, который был передан посредством использования

Intent i = new Intent();
i.setAction(Intent.ACTION_VIEW);
i.setComponent(new ComponentName("org.videolan.vlc", "org.videolan.vlc.gui.video.VideoPlayerActivity"));
i.setData(Uri.parse('http://st01.dlf.de/dlf/01/128/mp3/stream.mp3'));
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

Я пытался добавить

i.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
         WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
         WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
         WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON );

, а также

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

(WAKE_LOCK уже присутствовал, я также явно вызывал некоторые другие WakeLockкод получения)

Теперь я изменил две вещи, и я не знаю, в чем причина проблемы:

  1. Я добавил этот материал для защиты экрана (Pattern / PIN / Fingerprint)Ранее это устройство не имело такой защиты, при нажатии кнопки «Вкл.» отображался домашний экран напрямую (или самая активная активность)
  2. Я обновился до Android Pie

Как я могу "исправить эту проблему.Я вижу, что приложения-будильники каким-то образом способны решить эту проблему, но я не знаю, как.

...