通过Intent.createChooser分享的正确方法是什么

时间:2015-04-27 05:44:01

标签: android android-intent

问题是我有一篇文章要与其他应用分享,我想让用户选择要分享的应用。我想分享的基本上是:

  1. 文章标题
  2. 文章的网址
  3. 文章内容为HTML
  4. 带有一些额外文字的网址(例如来自#FooApp的 http://foo.com/article分享')
  5. 所有这些字段都是可选字段,但我想分享至少其中一个字段。

    例如当通过短信或推特分享时,我想将内容设置为第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代码时,目标意图接收器比我预期的差异很大。

    所以问题是:我做错了吗?这个问题是否有一些指导原则?

0 个答案:

没有答案