Intent 过滤器适用于模拟器,但不适用于设备
Intent filter works on emulator but not on device
我正在创建一个自定义 intent 过滤器,它会在我点击具有特定文件扩展名的文件时打开我的应用程序(在本例中为 .myextension
。)intent-filter 如下。每次我从我的模拟器打开一个 .myextension
文件时,这目前都能完美运行。但是,当我从我的设备上尝试时,它不再有效。
在我的设备上,当我在文件浏览器应用程序中点击 .myextension
文件时,我看到 Unable to preview file.
而不是自动打开该应用程序。我尝试从多个位置(文件应用程序、GDrive、下载文件夹、Slack/Gmail、内部存储和 SDCard)打开文件。我在我的模拟器和我的模拟器上都使用 Android 10设备。
<intent-filter android:label="My App">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:scheme="content"
android:mimeType="*/*"
android:host="*"
android:pathPattern=".*\.myextension" />
</intent-filter>
我也试过用这个块替换 data
tag/adding 第二个标签,但它似乎没有帮助:
<data
android:scheme="file"
android:mimeType="*/*"
android:host="*"
android:pathPattern=".*\.myextension" />
我是不是遗漏了什么明显的东西?任何帮助将不胜感激。谢谢!
<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" />
<data android:pathPattern=".*\.myextension" />
<data android:pathPattern="/*.*\.myextension" />
<data android:pathPattern="/*.*\..*\.myextension" />
<data android:pathPattern="/*.*\..*\..*\.myextension" />
<data android:pathPattern="/*.*\..*\..*\..*\.myextension" />
<data android:pathPattern="/*.*\..*\..*\..*\..*\.myextension" />
<data android:pathPattern="/*.*\..*\..*\..*\..*\..*\.myextension" />
<data android:pathPattern="/*.*\..*\..*\..*\..*\..*\..*\.myextension" />
<data android:pathPattern="/*.*\..*\..*\..*\..*\..*\..*\..*\.myextension" />
<data android:host="*" />
</intent-filter>
Though it doesnt work in some of the file managers Better first try in ESExplorer.
This currently works perfectly every time I open a .myextension file from my emulator.
很多时候它会失败,因为它并没有真正绑定到模拟器而不是设备。
However, when I try it from my device, it no longer works.
content
Uri
不需要文件扩展名,就像 https
URL 不需要文件扩展名一样。大多数时候,content
Uri
不会有文件扩展名,这样的 Uri
将不匹配您的 <intent-filter>
.
ACTION_VIEW
主要用于具有广泛认可的 MIME 类型的文件。
I've also tried replacing that data tag/adding a second tag with this block but it doesn't seem to help
file
Uri
值自 Android 7.0.
以来已普遍被禁止
我正在创建一个自定义 intent 过滤器,它会在我点击具有特定文件扩展名的文件时打开我的应用程序(在本例中为 .myextension
。)intent-filter 如下。每次我从我的模拟器打开一个 .myextension
文件时,这目前都能完美运行。但是,当我从我的设备上尝试时,它不再有效。
在我的设备上,当我在文件浏览器应用程序中点击 .myextension
文件时,我看到 Unable to preview file.
而不是自动打开该应用程序。我尝试从多个位置(文件应用程序、GDrive、下载文件夹、Slack/Gmail、内部存储和 SDCard)打开文件。我在我的模拟器和我的模拟器上都使用 Android 10设备。
<intent-filter android:label="My App">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:scheme="content"
android:mimeType="*/*"
android:host="*"
android:pathPattern=".*\.myextension" />
</intent-filter>
我也试过用这个块替换 data
tag/adding 第二个标签,但它似乎没有帮助:
<data
android:scheme="file"
android:mimeType="*/*"
android:host="*"
android:pathPattern=".*\.myextension" />
我是不是遗漏了什么明显的东西?任何帮助将不胜感激。谢谢!
<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" />
<data android:pathPattern=".*\.myextension" />
<data android:pathPattern="/*.*\.myextension" />
<data android:pathPattern="/*.*\..*\.myextension" />
<data android:pathPattern="/*.*\..*\..*\.myextension" />
<data android:pathPattern="/*.*\..*\..*\..*\.myextension" />
<data android:pathPattern="/*.*\..*\..*\..*\..*\.myextension" />
<data android:pathPattern="/*.*\..*\..*\..*\..*\..*\.myextension" />
<data android:pathPattern="/*.*\..*\..*\..*\..*\..*\..*\.myextension" />
<data android:pathPattern="/*.*\..*\..*\..*\..*\..*\..*\..*\.myextension" />
<data android:host="*" />
</intent-filter>
Though it doesnt work in some of the file managers Better first try in ESExplorer.
This currently works perfectly every time I open a .myextension file from my emulator.
很多时候它会失败,因为它并没有真正绑定到模拟器而不是设备。
However, when I try it from my device, it no longer works.
content
Uri
不需要文件扩展名,就像 https
URL 不需要文件扩展名一样。大多数时候,content
Uri
不会有文件扩展名,这样的 Uri
将不匹配您的 <intent-filter>
.
ACTION_VIEW
主要用于具有广泛认可的 MIME 类型的文件。
I've also tried replacing that data tag/adding a second tag with this block but it doesn't seem to help
file
Uri
值自 Android 7.0.