自定义共享对话框

时间:2012-08-08 16:16:36

标签: java android dialog

我正在尝试获得类似于以下内容的共享对话框,以便与预先选择的应用列表(电子邮件,Facebook,Twitter,Google +)共享一些纯文本。问题是,如果我发起一个共享文本的意图,那么该对话框的应用程序太多了。

1)我可以明确选择对话框中显示的应用吗?

2)如果没有,我可以进行自定义对话。如果是这样,我可以专门选择一个应用程序来启动并提供我的意图吗?对于每个对话框选项,我都会启动一个特定的应用程序。第一项 - 电子邮件,第二项 - 脸谱等。

enter image description here

1 个答案:

答案 0 :(得分:2)

  

1)我可以明确选择对话框中显示的应用程序吗?

您无法修改操作系统使用应用选择器创建的此列表。 (我猜这些应用都接受非常常见的数据类型“text / plain”。)

  

2)如果没有,我可以进行自定义对话。如果是这样,我可以专门选择一个应用程序来启动并提供我的意图吗?对于每个对话框选项,我都会启动一个特定的应用程序。第一项 - 电子邮件,第二项 - 脸谱等。

至于构建自己的自定义列表,您需要考虑以下几点:

  • 您可以创建明确打开GMail和Facebook应用程序的Intents,但有些用户不使用这些特定应用程序。相反,您应该显示接受特定数据类型(或MIME类型)的应用程序。

  • 电子邮件应用具有特定的MIME类型:“message / rfc822”,但有些不使用它。使用“text / plain”可能更安全。

  • 我不知道任何特定的Facebook MIME类型,无论如何你都必须使用“text / plain”。或者,您可以使用PackageManager在每个已安装的应用程序中搜索字符串“facebook”,但第三方Facebook应用程序可能没有在其包名中包含此字符串....

如果您打算使用“text / plain”数据类型,那么您最终将获得操作系统已自动为您创建的列表...

你想要做的并非不可能,但它比听起来更难。最后,您不小心可能会从自定义列表中排除用户最喜欢的应用程序...

(Android在此主题上有一个富有洞察力的博客:Sharing with Intents。)