EDIT: Aşağıdaki uygulama en azından bazı HTC cihazlarda (çöktü) sorunlar olduğunu kanıtladı. Bu nedenle setclassname kullanmıyorum ve eylem seçici menüsüne bağlı kalmıyorum. Eski uygulamamı kullanmaktan kesinlikle vazgeçiyorum.
Eski uygulama aşağıdadır:
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);
Yardımcı Program aşağıdaki yöntemle kendi kişisel yardımcı program sınıfım olduğunda:
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;
}
Öncelikle youtube'un yüklü olup olmadığını kontrol ediyorum, yüklü ise, android'e niyetimi açmayı tercih ettiğim paketi söylüyorum.