Android分享意图选择器

Vin*_*rat 14 twitter android facebook android-intent

我使用这样的东西在用户手机上使用可用的应用程序共享一些文本.

public void share(String subject,String text) {
     final Intent intent = new Intent(Intent.ACTION_SEND);

     intent.setType("text/plain");
     intent.putExtra(Intent.EXTRA_SUBJECT, subject);
     intent.putExtra(Intent.EXTRA_TEXT, text);

     startActivity(Intent.createChooser(intent, getString(R.string.share)));
}
Run Code Online (Sandbox Code Playgroud)

我的主要问题是,如果用户选择Twitter而不是电子邮件,我希望有一个不同的文本(短版本的短版本VS带有附加图像的全文).

如何找出用户决定使用哪个应用程序?

Nat*_*ann 8

一旦您使用createChooser将文本移交给系统,您就无法在此之后更改文本.

  • 您可以为intent指定包,但我会建议不要这样做.而是制作自己的选择器,对某些服务(Twitter)有一些特殊情况.更好的方法是使用"Shorter text"复选框制作您自己的选择器. (3认同)
  • 有问题的应用程序必须已经发布了自己的公共API用于发送推文,更新状态等.Twitdroid是我所知道的唯一一个已经这样做的应用程序,没有其他人遵循其惯例.我个人不介意这个设计,我认为方便值得权衡. (2认同)