共享意图,不一致的行为



我不知道该怎么问这个问题。这不是一个完全的问题,但在一些特定的场景中可以看到,让我这样写:

我开发了一个应用程序,它暴露了2个分享意图,一个是分享,另一个是观看。

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

另一方面,当我使用ES文件资源管理器时,视图意图出现在共享列表中,但当我使用File Expert文件资源管理器时,视图意图没有出现。

我在android manifest中使用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" />

set in manifest.

请在这件事上帮助我。

问候。

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

  1. intent在运行时像这样解析。例如:如果你指定了ACTION_SEND,那么所有的应用程序,无论是系统还是用户生成的应用程序,都将在它们的manifest中指定ACTION_SEND动作,它们将显示在该intent中。

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

for mime---- text/html -打开许多选项,包括whatsapp, facebook,蓝牙

所以在这些应用程序显示让你分享内容之后,它取决于应用程序是否能够解析你附加的数据。你无法控制它

最新更新