Android特定的MIME类型列表?

时间:2015-05-22 23:56:29

标签: android mime-types

我被要求添加"分享"我的一个Android应用程序的方法,允许用户分享1)Facebook 2)短信和3)电子邮件

在研究时,我发现允许用户从"发送消息"应用程序,我需要创建以下Intent:

    Intent messageIntent = new Intent(Intent.ACTION_SEND);
    messageIntent.putExtra(Intent.EXTRA_SUBJECT, title);
    messageIntent.putExtra(Intent.EXTRA_TEXT, content);
    messageIntent.setType("vnd.android-dir/mms-sms");
    // title and content set elsewhere...

有效,但我的列表中也有电子邮件客户端...

我的问题:

  1. 是否有可供我们使用的Android特定MIME类型的某个列表? " vnd.android-dir / mms-sms"从我发现的例子来看,我似乎已经凭空消失了。
  2. 是否有正确的方式来获取消息传递客户端(即不是邮件客户端) - 或者在Android中几乎不可能这样做。
  3. 免责声明:以上代码段是从另一个SO帖子中找到的。也许只是我在谷歌失败 - 但我似乎无法在合法的Android开发者网站上找到任何文档,其中列出了这是正确的方法,或者我的选择。

1 个答案:

答案 0 :(得分:2)

  

我被要求添加"分享"我的一个Android应用程序的方法,允许用户分享1)Facebook 2)短信和3)电子邮件

请允许用户share how the users want,这可能是也可能不是通过这些方式。

  

我发现允许用户选择" messaging"应用程序,我需要创建以下Intent

不,这允许用户通过任何恰好支持未记录且不受支持的MIME类型的应用程序进行共享。不是每一个"消息传递"应用程序必然会支持MIME类型,以及不是" messaging"欢迎应用程序支持该MIME类型。

  

是否有可供我们使用的Android特定MIME类型的某个列表?

不是真的,因为一般情况下它们没有记录或记录不足(例如,常数出现在没有解释的地方)。

  

" vnd.android-dir / mms-sms"从我发现的例子来看,我似乎已经凭空消失了。

它可能来自the Android source code

  

是否有正确的方法来获取消息传递客户端(即不是邮件客户端) - 或者在Android中几乎不可能这样做。

这个星球上有大约70亿人。欢迎他们每个人对“消息传递客户端”和“#34;是什么"邮件客户端"这些是描述性的营销术语,而不是技术定义。

ACTION_SEND用于通过MIME类型共享内容。任何应用程序都可以为任何给定的MIME类型提供支持ACTION_SEND,因为任何应用程序的开发人员都可以编写他们想要的内容。是否任何给定的应用程序是"消息传递客户端","邮件客户端"或其他东西取决于最终用户。你没有办法阅读用户的思想,也没有任何法律手段阻止其他程序员写下他们想要的东西。

现在,有各种脚本小子黑客通过应用程序ID(a.k.a.,包名称)将共享列表限制为某些应用程序。然而,虽然只有一个Facebook(虽然我似乎记得他们有一些应用程序),但有许多短信和电子邮件应用程序,如果不是不可能的话,你想出一个所有的列表很难他们,更不用说随着时间的推移保持这个名单。

强烈建议有用地格式化您的内容,并允许用户使用他们希望的应用分享该内容。