Приложение Twitter должно быть установлено , и, вероятно, чтобы это работало, необходимо, чтобы пользователь активно вошел в систему (большинство пользователей).Я не думаю, что tweetIntent.setType("application/twitter");
работает, я никогда не видел этого.Вы можете ограничить общий доступ к Twitter, отфильтровав его по имени пакета приложения, tweetIntent.setPackage("com.twitter.android");
.Вы хотите убедиться, что это доступно вам с помощью PackageManager.Ниже приведен возможный код, который я не проверял.
Intent tweetIntent = new Intent(Intent.ACTION_SEND);
tweetIntent.setPackage("com.twitter.android");
tweetIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Test; please ignore");
PackageManager pm = context.getPackageManager();
if(pm.queryIntentActivities (tweetIntent, 0).size() > 0) { // If there's at least 1 intent that matches then the intent is valid.
startActivity(Intent.createChooser(tweetIntent, "Choose one"));
} else {
// Not supported.
}
Цель совместного использования Android предназначена для отправки данных для совместного использования в другие приложения.Вполне возможно, что вы можете ограничить общий доступ к конкретному приложению, как вы делаете.Но вы идете вразрез с тем, как работает Android, и вы открываете себя для проблем несовместимости, делая это.Возможно, вам лучше использовать Twitter API напрямую.
Обоснование состоит в том, что если у пользователя не установлен Twitter, то, скорее всего, его это не волнует.Но они могут захотеть поделиться контентом в другом сервисе, таком как Facebook.