Для моего приложения я показываю твиттер внутри главного экрана.Что круто, так это то, что люди могут следить за информацией в твиттере о железнодорожной компании в моей стране, не имея учетной записи в Твиттере.
![enter image description here](https://i.stack.imgur.com/6dR7o.png)
Я хотел бы реагировать, когда пользователь нажимаетна предмет, а затем позволить ему ответить / RT.Если у пользователя не установлено приложение для твиттера, то ничего не должно произойти (возможно, тост)
Я попробовал это действие:
Intent tweetIntent = new Intent(Intent.ACTION_SEND);
tweetIntent.putExtra(Intent.EXTRA_TEXT, "Test; please ignore");
tweetIntent.setType("application/twitter");
Но, похоже, открываются также электронная почта, Gmail и другиебесполезные приложения.
Есть ли способ отфильтровать этот список и сохранить только приложения Twitter (Twitter, Twydroid, Plume, Twicca и т. д.)
Большое спасибо за любые предложения.
Редактировать: мой текущий обходной путь, который мне вообще не нравится:
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;
}