9

我有youtube按钮,它将打开一个特定的*频道* 我希望它在youtube *应用程序* 中打开,以便从我的应用程序访问一个频道。

Intent intent = new Intent(Intent.ACTION_VIEW , Uri.parse("https://www.youtube.com/channel/UCRmoG8dTnv0B7y9uoocikLw"));
context.startActivity(intent);

但它正在浏览器中打开

4

4 回答 4

10

您应该明确地将其发送到 youtube。您可以通过指定包来做到这一点:

intent.setComponent(new ComponentName("com.google.android.youtube","com.google.android.youtube.PlayerActivity"));

另请注意,您还应该检查是否安装了 youtube!

Intent intent = new Intent(
    Intent.ACTION_VIEW , 
    Uri.parse("https://www.youtube.com/channel/UCRmoG8dTnv0B7y9uoocikLw"));
intent.setComponent(new ComponentName("com.google.android.youtube","com.google.android.youtube.PlayerActivity"));

PackageManager manager = context.getPackageManager();
List<ResolveInfo> infos = manager.queryIntentActivities(intent, 0);
if (infos.size() > 0) {
     context.startActivity(intent);
}else{
     //No Application can handle your intent
}
于 2013-10-01T12:53:56.037 回答
6

我发现这是一种简单的方法(假设您已经检查了 YouTube 是否已安装):

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://www.youtube.com/**YOURCHANNEL**"));
intent.setPackage("com.google.android.youtube");
startActivity(intent);
于 2016-03-10T18:32:52.217 回答
1
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(urlStr));
startActivity(intent);

urlStr是您想要的频道的网址

于 2015-12-23T05:59:06.563 回答
1
Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.parse("https://www.youtube.com/"));
            intent.setPackage("com.google.android.youtube");
            PackageManager manager = getPackageManager();
            List<ResolveInfo> info = manager.queryIntentActivities(intent, 0);
            if (info.size() > 0) {
                startActivity(intent);
            } else {
                //No Application can handle your intent
            }

这就是您可以实现的方式.. 仅提供“https://www.youtube.com/”将直接将您带入主页。虽然绝对可以自定义 url 以重定向到特定的频道或视频。

于 2020-09-29T18:54:29.683 回答