如何从android应用程序打开youtube应用程序
我有一个youtube按钮,它将打开一个特定的*频道*,我希望它在youtube*应用程序*中打开,以便从我的应用程序访问频道如何从android应用程序打开youtube应用程序,android,android-intent,Android,Android Intent,我有一个youtube按钮,它将打开一个特定的*频道*,我希望它在youtube*应用程序*中打开,以便从我的应用程序访问频道 Intent intent = new Intent(Intent.ACTION_VIEW , Uri.parse("https://www.youtube.com/channel/UCRmoG8dTnv0B7y9uoocikLw")); context.startActivity(intent); 但它正在浏览器中打开您应该明确地将其发送到youtube。可以通过指
Intent intent = new Intent(Intent.ACTION_VIEW , Uri.parse("https://www.youtube.com/channel/UCRmoG8dTnv0B7y9uoocikLw"));
context.startActivity(intent);
但它正在浏览器中打开您应该明确地将其发送到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
}
Intent意向=新意向(
意图、行动和观点,
解析https://www.youtube.com/channel/UCRmoG8dTnv0B7y9uoocikLw"));
setComponent(新组件名(“com.google.android.youtube”、“com.google.android.youtube.PlayerActivity”);
PackageManager=context.getPackageManager();
List infos=manager.querytentActivities(intent,0);
如果(infos.size()>0){
背景。开始触觉(意图);
}否则{
//没有应用程序可以处理您的意图
}
urlStr是您所需频道的url我发现这是一种简单的方法(假设您已经检查安装了YouTube):
Intent-Intent=新意图(Intent.ACTION\u视图);
intent.setData(Uri.parse(“https://www.youtube.com/"));
intent.setPackage(“com.google.android.youtube”);
PackageManager=getPackageManager();
List info=manager.querytentActivities(intent,0);
如果(info.size()>0){
星触觉(意向);
}否则{
//没有应用程序可以处理您的意图
}
这就是你能做到的。。只提供“https://www.youtube.com/“将直接让你进入家庭喂养。当然,你可以自定义url重定向到特定的频道或视频。试试这个startActivity(新的Intent(“android.Intent.action.VIEW”),Uri.parse(“url”)@Rohit这与OP的代码完全相同吗?试试这个android.intent.action.VIEWNote。另外,您可能希望在startActivity调用中捕获ActivityNotFoundException以返回浏览器youtube播放器。正确@elimirks,我已将其添加到我的答案中。我认为这不是正确的方法,主要是因为应用程序提供程序可以更新/更改PackageName/活动名称。所有应用程序都应通过正确的意图操作启动。虽然,这可能不会立即导致任何问题,但很容易损坏。(取决于谷歌…)没错,但另一个解决方案是将Youtube设置为此类URL的主处理程序。感谢您提供的
Youtube
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(urlStr));
startActivity(intent);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://www.youtube.com/**YOURCHANNEL**"));
intent.setPackage("com.google.android.youtube");
startActivity(intent);
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
}