在下载/文档文件夹中为文件类型/扩展名注册Android应用程序
当用户在其文件浏览器中单击某个文件(例如,在下载/文档文件夹中为文件类型/扩展名注册Android应用程序,android,Android,当用户在其文件浏览器中单击某个文件(例如,.xyz)时,我正在尝试打开我的应用程序 我在清单文件中的代码是 <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <categor
.xyz
)时,我正在尝试打开我的应用程序
我在清单文件中的代码是
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file"
android:host="*" />
<data android:scheme="content"
android:host="*" />
<data android:mimeType="application/octet-stream" />
<data android:pathPattern=".*\\..*\\..*\\..*\\..*\\.xyz" />
<data android:pathPattern=".*\\..*\\..*\\..*\\.xyz" />
<data android:pathPattern=".*\\..*\\..*\\.xyz" />
<data android:pathPattern=".*\\..*\\.xyz" />
<data android:pathPattern=".*\\.xyz" />
<data android:pathPattern="*.xyz" />
</intent-filter>
到
但当我使用values.put(MediaStore.MediaColumns.MIME_TYPE,“application/my_xyz_TYPE”)
执行此操作时,该文件将保存为二进制文件,并将application/octet stream
作为MIME类型。因此,我假设不可能使用自定义mime类型存储文件
“当用户单击其文件浏览器中的某个文件时,我当前正试图打开我的应用程序(例如….xyz)
在安卓系统中,对于“自定义”文件扩展名,这从来都不是一个好的选择,在现代版本中,这是相当不现实的
这似乎适用于手机存储器中存储的文件,例如Android/文件夹中的文件
不一定。行为会因操作系统版本和“文件浏览器”应用程序而异
当用户单击扩展名为.xyz的文件时,有没有办法在这两个位置打开自己的应用程序
不可以。更一般地说,您应该假设内容Uri
没有有用的文件扩展名,就像http
和https
Uri
值通常没有有用的文件扩展名一样
我考虑的另一种选择是使用自定义mime类型来保存文件
您的
不限于应用程序参与保存的文件
因此,我假设不可能使用自定义mime类型存储文件
这不会让我感到惊讶,尽管我没有亲自尝试过。MediaStore
可能会根据它愿意支持的MIME类型列表检查您提供的MIME类型,如果您的MIME类型不在列表中,则可能会在application/octet-stream
中作为默认值进行交换。这是另一件事,其行为可能因操作系统而异版本(可能由设备制造商提供)。令人失望,但感谢您的回答!
<data android:mimeType="application/octet-stream" />
<data android:mimeType="application/my_xyz_type" />