我被要求添加"分享"我的一个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...
此类有效,但我的列表中也有电子邮件客户端...
我的问题:
免责声明:以上代码段是从另一个SO帖子中找到的。也许只是我在谷歌失败 - 但我似乎无法在合法的Android开发者网站上找到任何文档,其中列出了这是正确的方法,或者我的选择。
答案 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(虽然我似乎记得他们有一些应用程序),但有许多短信和电子邮件应用程序,如果不是不可能的话,你想出一个所有的列表很难他们,更不用说随着时间的推移保持这个名单。
我强烈建议有用地格式化您的内容,并允许用户使用他们希望的应用分享该内容。