Как включить экран и открыть приложение YouTube и оставить экран включенным?

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

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

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

    String path = "https://www.youtube.com/watch?v=63pKwVE4Uog";
    Uri uri = Uri.parse(path);
    uri = Uri.parse("vnd.youtube:" + uri.getQueryParameter("v"));
    Intent i= new Intent(Intent.ACTION_VIEW, uri);
    i.addFlags(FLAG_ACTIVITY_NEW_TASK);
    startActivity(i);
}

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

Я прав в чем проблема? если да то как это можно сделать?


person user3001010    schedule 03.04.2017    source источник
comment
Попробуйте добавить обработчик задержки запуска приложения YouTube. Таким образом, ваш экран включится и не заснет, когда запустится приложение YouTube.   -  person Jonathan Aste    schedule 03.04.2017


Ответы (1)


В качестве обходного пути, как я сказал в своем комментарии, вы можете добавить обработчик для задержки запуска приложения YouTube.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

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

    String path = "https://www.youtube.com/watch?v=63pKwVE4Uog";
    Uri uri = Uri.parse(path);
    uri = Uri.parse("vnd.youtube:" + uri.getQueryParameter("v"));
    Intent i= new Intent(Intent.ACTION_VIEW, uri);
    i.addFlags(FLAG_ACTIVITY_NEW_TASK);
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            startActivity(i);
        }
    }, 2000);
}
person Jonathan Aste    schedule 04.04.2017