如何打开屏幕并打开 youtube 应用程序并保持屏幕打开?

How to turn on screen and open youtube app and keep the screen on?

我有一个 activity 可以在特定时间唤醒屏幕并打开 YouTube 应用程序,我可以打开屏幕,但如果我在 YouTube 应用程序上添加 startActivity 它没有打开(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 应用程序启动,保持屏幕打开的 activity 是 destroyed/paused - 在这种情况下屏幕会关闭(即使我看不到它打开)。

我对问题的看法是否正确?如果是这样怎么办?

作为解决方法,正如我在评论中所说,您可以添加一个处理程序来延迟 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);
}