我不知道该怎么问这个问题。这不是一个完全的问题,但在一些特定的场景中可以看到,让我这样写:
我开发了一个应用程序,它暴露了2个分享意图,一个是分享,另一个是观看。
共享意图,共享具有自定义扩展名的文件。当我使用k9邮件应用程序共享应用程序时,它出现在附件中,但使用默认的android邮件应用程序不显示附件中的文件。
另一方面,当我使用ES文件资源管理器时,视图意图出现在共享列表中,但当我使用File Expert文件资源管理器时,视图意图没有出现。
我在android manifest中使用mimeType="application/myCustomExtension"
作为视图意图。将其更改为mimeType="*/*"
和android:pathPattern=".*\.CUSTOM_FILE_EXTENSION"
以及android:host
和android:scheme
使其出现在共享列表中,但也适用于所有其他文件,不仅适用于我的自定义扩展名。
虽然这不是一个问题,因为我的代码工作在一些文件管理器和电子邮件客户端,不工作在一些。但是,我想知道是否有某种方法可以使它们在所有应用程序中保持一致。
此外,蓝牙选项也没有显示在我的共享意图,当我分享我的自定义扩展。我有蓝牙权限
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
set in manifest.
请在这件事上帮助我。
问候。
我想指出以下关于意图的事情。
- intent在运行时像这样解析。例如:如果你指定了ACTION_SEND,那么所有的应用程序,无论是系统还是用户生成的应用程序,都将在它们的manifest中指定ACTION_SEND动作,它们将显示在该intent中。
所以对于actionSend - mime设置为plain/text -打开gmail和默认邮件在你的手机
for mime---- text/html -打开许多选项,包括whatsapp, facebook,蓝牙
所以在这些应用程序显示让你分享内容之后,它取决于应用程序是否能够解析你附加的数据。你无法控制它