Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android文件:如果我将.zip文件复制到/sdcard/Download,uri将是错误的_Java_Android_File Manager_File Browser - Fatal编程技术网

Java Android文件:如果我将.zip文件复制到/sdcard/Download,uri将是错误的

Java Android文件:如果我将.zip文件复制到/sdcard/Download,uri将是错误的,java,android,file-manager,file-browser,Java,Android,File Manager,File Browser,我有一个要求,我们可以通过我的应用程序打开一个.zip文件,替换为.activity。我将manifest.xml设置为 <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="fi

我有一个要求,我们可以通过我的应用程序打开一个.zip文件,替换为.activity。我将manifest.xml设置为

<intent-filter>
     <action android:name="android.intent.action.VIEW" />
     <category android:name="android.intent.category.DEFAULT" />
     <data android:scheme="file" />
     <data android:scheme="content" />
     <data android:host="*" />
     <data android:mimeType="*/*" />
     <data android:pathPattern=".*\\.activity" />
</intent-filter>
首先,我将“test.activity”推到/sdcard/Download,得到一个uri,如content://com.android.providers.downloads.documents/document/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2Ftest.activity

然后我单击Downloads并将文件复制到Downloads以及/sdcard/Download,它将被自动命名为test1.activity。我认为正确的uri应该是

content://com.android.providers.downloads.documents/document/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2Ftest1.activity

但我有一个uri像

content://com.android.providers.downloads.documents/document/805

因此,我在开头提到的“意图过滤器”将变得无效。有人能告诉我为什么这个uri的结尾会变成一个数字吗?

在某些设备上。从下载目录选择文件时,将返回错误的uri。所以你需要改变它

你可以在这里查阅


谢谢但他的问题可以在我的谷歌像素上重现,我想知道为什么本地文件管理器会这样做。这个问题是由制造商引起的。我们不能干涉。链接中的代码试图获取经典文件路径并使用文件类。uri正常,文件方法错误。content://com.android.providers.downloads.documents/document/805 这是一个从下载“分区”获得的非常普通的内容方案。有效的uri。那个供应商就是这样做的。习惯它。数字是文件的文档id。如果您首先在下载中创建一个文件夹并将文件放在那里,您的方法可能会奏效。未经测试。
content://com.android.providers.downloads.documents/document/805