简体   繁体   中英

Android Files: if I copy a .zip file to /sdcard/Download, the uri will be wrong

I got a requirement that we can open a .zip file(replaced with .activity) through my app. I set the manifest.xml like

<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>

When I open a file named 'test.activity' which is 'test.zip' actually with the code below.

public void chooseFile(CallbackContext callbackContext) {

        Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
        intent.setType("*/*");
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);

First I push 'test.activity' to /sdcard/Download and I got a uri like content://com.android.providers.downloads.documents/document/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2Ftest.activity

Then I click Downloads and copy the file to Downloads as well(/sdcard/Download), it will be named with test(1).activity automatically. I thought the correct uri should be

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

but I got a uri like

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

So the 'intent-filter' I mentioned at the beginning will become invalid. Could anyone tell me why the end of this uri becomes a number?

On some devices. when selecting a file from the download directory will return the wrong uri. So you need to change it

You can refer here

https://github.com/Turtlebody/android-media-picker/issues/7

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM