在我的Android应用中,我发送文字给第三方应用,如下所示:
String subject = "...";
String body = "...";
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
sendIntent.putExtra(Intent.EXTRA_TEXT, body);
Intent it = Intent.createChooser(sendIntent, "Share:");
G.act.startActivity(it);
这很好用。但是,如果用户选择通过电子邮件分享,我想发送不同的文本,而不是用户选择通过Twitter分享(当然这仅限于140个字符)。在用户在选择器中选择他们的应用程序后,有什么方法可以接收某种回调,并在将Intent EXTRAS字段发送到第三方应用程序之前修改它吗?
答案 0 :(得分:0)
在用户在选择器中选择他们的应用程序后,有什么方法可以收到某种回调,并在将Intent EXTRAS字段发送到第三方应用程序之前修改它吗?
不,抱歉。您需要实现自己的“选择器”机制。您甚至没有发现用户选择了任何,更不用说他们选择的具体内容了,更不用说根据选择影响您使用的内容的变化。
使用股票“选择器”,您可以使用Intent.EXTRA_INITIAL_INTENTS
获得接近您所寻求的任何东西的唯一方法是让选择器支持多个Intent
来填充选择器。但是,这仅适用于您可以通过Intent
区分可能的目标应用的情况。所以,你可以:
ACTION_SENDTO
Intent
,mailto:
Uri
将被电子邮件客户端使用ACTION_SEND
Intent
您可以在特定于电子邮件的Intent
中提供较长的邮件,在较为通用的Intent
中提供较短的邮件。