问题是我有一篇文章要与其他应用分享,我想让用户选择要分享的应用。我想分享的基本上是:
所有这些字段都是可选字段,但我想分享至少其中一个字段。
例如当通过短信或推特分享时,我想将内容设置为第4部分。当通过Facebook分享时,我想一起设置1,2,3。当通过电子邮件分享时,我想将主题设置为1,将消息设置为4.
我知道(如果我错了,请纠正我)每个目标意图接收器都有自己的逻辑来获取所需的字段。所以我想提供尽可能多的信息,我写了下面的代码:
String message = article.getURL() + " #FooApp";
Intent intent = new Intent().setData(Uri.parse(article.getURL())
.putExtra(Intent.EXTRA_SUBJECT, article.getTitle())
.putExtra(Intent.EXTRA_TEXT, message)
.putExtra(Intent.EXTRA_HTML_TEXT, article.getHTML())
.putExtra("sms_body", message)
...
.setType(HTTP.PLAIN_TEXT_TYPE);
startActivity(Intent.createChooser(intent, "Share to"));
但问题是,它似乎是setData,putExtra,setType之间的一个技巧。
对于某些应用程序出现在选择器对话框中,当我选择时,确认共享窗口(该应用程序)显示我设置为意图的任何内容。 (对于其他一些他们刚才说无法获取资源的应用程序)
对于putExtra
部分,当我添加或删除一些putExtra
代码时,目标意图接收器比我预期的差异很大。
所以问题是:我做错了吗?这个问题是否有一些指导原则?