Dla mojej aplikacji wyświetlam twitterfeed wewnątrz głównego ekranu. Co jest fajne, to że ludzie mogą śledzić informacje o twitterze na temat firmy przewozowej mojego kraju bez posiadania konta na Twitterze.Tworzenie "Tweetuj ten przycisk" w celu udostępniania informacji tylko na Twitterze nie jest takie łatwe
Co chciałbym zrobić, to reakcję, gdy użytkownik kliknie na elemencie, a następnie pozwala mu odpowiadać/RT. Jeśli użytkownik nie zainstalowano aplikacji twitter, wtedy nic nie powinno się zdarzyć (może toast)
Próbowałem tę akcję:
Intent tweetIntent = new Intent(Intent.ACTION_SEND);
tweetIntent.putExtra(Intent.EXTRA_TEXT, "Test; please ignore");
tweetIntent.setType("application/twitter");
Ale wydaje się otwierać również e-mail, Gmail i innych bezużytecznych aplikacji.
Czy istnieje sposób, aby filtrować tę listę i zachować tylko aplikacje Twitter (Twitter, Twydroid, smudze, Twicca, etc ..)
Dziękuję dużo za wszelkie sugestie.
Edit: Moje bieżące obejście, że mi się nie podoba na wszystkich:
public Intent findTwitterClient() {
final String[] twitterApps = {
// package // name
"com.twitter.android", // official
"com.levelup.touiteur", // Plume
"com.twidroid", // twidroyd
"com.handmark.tweetcaster", //
"com.thedeck.android" // };
Intent tweetIntent = new Intent();
tweetIntent.setType("text/plain");
final PackageManager packageManager = getPackageManager();
List<resolveinfo> list = packageManager.queryIntentActivities(
tweetIntent, PackageManager.MATCH_DEFAULT_ONLY);
for (int i = 0; i <twitterApps.length; i++) {
for (ResolveInfo resolveInfo : list) {
String p = resolveInfo.activityInfo.packageName;
if (p != null && p.startsWith(twitterApps[i])) {
tweetIntent.setPackage(p);
return tweetIntent;
}
}
}
return null;
}