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

时间:2017-04-03 17:25:26

标签: android youtube android-windowmanager android-powermanager

我有一项活动,假设在特定时间唤醒屏幕并打开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应用程序启动,屏幕打开的活动就会被破坏/暂停 - 在这种情况下屏幕会关闭(即使我看不到它开启)。

我对这个问题是对的吗?如果是这样,怎么办呢?

1 个答案:

答案 0 :(得分:0)

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