分享意图,不一致的行为

时间:2013-05-14 05:57:58

标签: android android-intent android-manifest share

我不确定如何提出这个问题。这不完全是一个问题,但在某些特定情况下可以看到,让我这样说:

我开发了一个应用程序,它公开了2个共享意图,一个用于共享,另一个用于查看。

共享意图,与自定义扩展共享文件。当我使用k9邮件应用程序共享应用程序时,它会显示在附件中,但使用默认的android邮件应用程序不会在附件中显示该文件。

另一方面,视图意图在我使用ES文件资源管理器时显示在共享列表中,但在使用File Expert文件浏览器时不显示。

我在android清单中使用mimeType="application/myCustomExtension"作为视图意图。将其更改为mimeType="*/*"android:pathPattern=".*\\.CUSTOM_FILE_EXTENSION"以及android:hostandroid:scheme会使其显示在共享列表中,但对于所有其他文件,不仅仅是我的自定义扩展程序。

虽然这不是一个问题,因为我的代码适用于某些文件管理器和电子邮件客户端,但在某些文件管理器和电子邮但是,我想知道是否有某些方法可以让它们在所有应用中保持一致。

此外,当我共享自定义扩展程序时,蓝牙选项也不会显示在我的共享意图中。我有蓝牙权限

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

在清单中设置。

请帮我解决这个问题。

问候。

1 个答案:

答案 0 :(得分:0)

我想指出以下关于意图的事情。

  1. 在运行时解析Intent就像这样。例如:如果您指定了ACTION_SEND,那么无论系统或用户生成的应用程序是否在其清单中都将操作指定为ACTION_SEND,它们都将显示在该意图中。 / LI>

    所以对于actionSend - 将mime设置为plain / text ---打开手机中的gmail和默认邮件

    for mime ---- text / html - 打开很多选项,包括whatsapp,facebook,bluetooth

    因此,在这些应用程序显示后,您可以将内容分享到应用程序,以便能够解析您附加的数据。 你无法控制它。