Android 意图过滤器在模拟器上工作,但在设备上不工作

Android 意图过滤器在模拟器上工作,但在设备上不工作,android,android-intent,intentfilter,android-10.0,Android,Android Intent,Intentfilter,Android 10.0,我正在创建一个自定义的意图过滤器,在本例中,当我点击某个文件扩展名为.myextension的文件时,它将打开我的应用程序。下面是意图过滤器。目前,每当我从emulator中打开.myextension文件时,这种方法都能很好地工作。然而,当我从我的设备上尝试它时,它不再工作 在我的设备上,当我在文件浏览器应用程序中点击.myextension文件时,我看到无法预览文件。而不是自动打开应用程序。我试过从很多地方打开这个文件,包括文件应用程序、GDrive、下载文件夹、Slack/Gmail、内部

我正在创建一个自定义的意图过滤器,在本例中,当我点击某个文件扩展名为.myextension的文件时,它将打开我的应用程序。下面是意图过滤器。目前,每当我从emulator中打开.myextension文件时,这种方法都能很好地工作。然而,当我从我的设备上尝试它时,它不再工作

在我的设备上,当我在文件浏览器应用程序中点击.myextension文件时,我看到无法预览文件。而不是自动打开应用程序。我试过从很多地方打开这个文件,包括文件应用程序、GDrive、下载文件夹、Slack/Gmail、内部存储和SD卡。我在模拟器和设备上都使用安卓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>
我错过了什么明显的东西吗?任何帮助都将不胜感激。谢谢

<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.
目前,每当我从emulator中打开.myextension文件时,这种方法都能很好地工作

它在大多数情况下都会失败,因为它并没有真正与仿真器和设备挂钩

然而,当我从我的设备上尝试它时,它不再工作

内容Uri不需要有文件扩展名,就像https URL不需要有文件扩展名一样。很多时候,内容Uri没有文件扩展名,这样的Uri与您的文件不匹配

ACTION_视图主要用于具有广泛认可的MIME类型的文件

我还尝试用这个块替换那个数据标记/添加第二个标记,但似乎没有帮助


自Android 7.0以来,文件Uri值通常被禁用。

感谢您的回复!不幸的是,这并没有解决它。我认为它与路径模式无关,因为我使用的文件名非常简单:test.myextension。而且它目前正在emulator上打开,这意味着pathPattern已经在某种程度上起作用了。你能给我更多关于什么不起作用的见解吗?是选择应用程序未显示的弹出窗口,还是在你的应用程序中你没有达到目的?你是对的-我误解了这些是如何工作的。我已经重新编写了从应用程序内部启动文件选择器的流程,您可以在其中选择所需的文件。谢谢@Nate你能分享你的解决方案吗我也有同样的问题,谢谢
<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.