Сначала создайте Intent, представляющий то, что вы хотите отправить по электронной почте, опубликовать в Twitter и т. Д. Добавьте хорошие значения по умолчанию в Intent.EXTRA_TEXT и в теме.Затем вызовите Intent.createChooser () с вашим намерением.Этот метод возвращает Intent, представляющий, какое действие выбрал пользователь.Теперь, вот где мы добавляем желаемую настройку.Изучите Intent, который возвращается следующим образом:
Intent intentYouWantToSend = new Intent(Intent.ACTION_SEND);
intentYouWantToSend.putExtra(Intent.EXTRA_TEXT, "Good default text");
List<ResolveInfo> viableIntents = getPackageManager().queryIntentActivities(
intentYouWantToSend, PackageManager.MATCH_DEFAULT_ONLY);
//Here you'll have to insert code to have the user select from the list of
//resolve info you just received.
//Once you've determined what intent the user wants, store it in selectedIntent
//This details of this is left as an exercise for the implementer. but should be fairly
//trivial
if(isTwitterIntent(selectedIntent)){
selectedIntent.putExtra(Intent.EXTRA_TEXT, "Different text for twitter");
}
else if(isFacebookIntent(selectedIntent)){
selectedIntent.putExtra(Intent.EXTRA_TEXT, "Different text for facebook");
}
startActivity(selectedIntent);
Изучив Intent, который возвращается Intent.createChooser, мы можем определить, как нам нужно изменить его, прежде чем запускать его.Вы должны будете самостоятельно реализовать функции isTwiterIntent и isFacebookIntent.Я полагаю, что это будет относительно легко, так как вам, вероятно, просто нужно изучить контекст намерения.Я проведу еще немного исследований и выясню, не смогу ли я найти точное решение для определения того, предназначен ли Intent для Twitter или Facebook или что-то еще, и постараюсь дать вам более полный ответ.