EDIT: नीचे दिए गए कार्यान्वयन से कम से कम कुछ एचटीसी उपकरणों (वे दुर्घटनाग्रस्त) पर समस्या साबित हुए। उस कारण से मैं सेटक्लस नाम का उपयोग नहीं करता हूं और कार्रवाई चयनकर्ता मेनू के साथ रहना चाहता हूं। मैं अपने पुराने कार्यान्वयन का उपयोग करते हुए दृढ़ता से हतोत्साहित करता हूं।
निम्नलिखित पुराने कार्यान्वयन है:
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(youtubelink));
if(Utility.isAppInstalled("com.google.android.youtube", getActivity())) {
intent.setClassName("com.google.android.youtube", "com.google.android.youtube.WatchActivity");
}
startActivity(intent);
जहां उपयोगिता मेरे अपने व्यक्तिगत उपयोगिता वर्ग के साथ निम्नलिखित मेथोड है:
public static boolean isAppInstalled(String uri, Context context) {
PackageManager pm = context.getPackageManager();
boolean installed = false;
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
installed = true;
} catch (PackageManager.NameNotFoundException e) {
installed = false;
}
return installed;
}
पहले मैं जांचता हूं कि क्या यूट्यूब स्थापित है, अगर यह स्थापित है, तो मैं एंड्रॉइड को बताता हूं कि मैं किस पैकेज को अपना इरादा खोलना पसंद करता हूं।