แก้ไข: การใช้งานด้านล่างได้รับการพิสูจน์แล้วว่ามีปัญหาเกี่ยวกับอุปกรณ์ HTC อย่างน้อยบางรุ่น ด้วยเหตุนี้ฉันจึงไม่ใช้ setclassname และติดกับเมนู action chooser ฉันไม่สนับสนุนการใช้งานแบบเดิมของฉันอย่างยิ่ง
ต่อไปนี้คือการใช้งานเก่า:
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);
โดยที่ Utility เป็นคลาสยูทิลิตี้ส่วนตัวของฉันเองที่มี methode ต่อไปนี้:
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;
}
ก่อนอื่นฉันจะตรวจสอบว่ามีการติดตั้ง youtube หรือไม่หากมีการติดตั้งฉันจะแจ้งให้ android ทราบว่าฉันต้องการเปิดแพ็คเกจใด