我有两种类型的Intent可供分享。一个用于简单的通用消息,如SMS / Slack等,另一个用于电子邮件。我似乎无法弄明白的是如何找到一种方法来解决某人通过选择器选择的内容并使用适当的意图。
(这可以通过按分享按钮完成,所有发送选项都会显示在选择器
中任何帮助都会很棒。
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
Intent chooser = Intent.createChooser(shareIntent,"");
我的想法是在解析选择器的时候我可以看到它是否是一种电子邮件类型,但它似乎也没有用。
答案 0 :(得分:0)
一旦你解雇了一个意图,控制所发生的事情是你无法控制的。一旦用户选择操作,选择器将不会向您的应用程序提供回调 - 而是系统会将您启动的意图传递给所选应用程序。
如How to filter specific apps for ACTION_SEND intent (and set a different text for each app)中所述,如果您想自定义选择器,您可以选择几个选项。你可以:
Intent.EXTRA_INITIAL_INTENTS
表示其他意图。第一个选项可能并不理想,因为选项的排序可能不是您想要的。
第二个选项提供了更多控制权,但需要维护很多工作,特别是如果您需要更新的平台功能,例如直接与联系人共享。
另一个选择是更改您的UI以提供单独的“共享”和“电子邮件”选项,然后使用每个选项的默认意图。