某些设备不存在Uri content:// media / external / file

Bhi*_*fer 5 file-io android mediastore android-mediascanner

我的某些设备有问题。我无法在任何设备上复制它,但是有些用户报告了很多崩溃报告。

这是例外:

java.lang.IllegalArgumentException: Unknown URL content://media/external/file
    at android.content.ContentResolver.delete(ContentResolver.java:1024)
Run Code Online (Sandbox Code Playgroud)

我用这个:

context.getContentResolver()。delete(MediaStore.Files.getContentUri(“ external”),MediaStore.Files.FileColumns.DATA +“ =?”,新的String [] {path});

之后,我调用MediaScannerConnection.scanFile()文件的父目录,因为这是如何通知MediaScanner有关文件删除以及如何刷新MTP内容的最有效的方法。我尝试了在stackoverflow上找到的所有其他方式(例如,Android如何使用MediaScannerConnection scanFile),但没有任何一种方法能达到这个目的。

顺便说一句。我仅将其用于API 11及更高版本。肯定安装了外部存储。

我有以下问题:1.您知道发生此异常的任何原因吗?我不想只是忽略异常。而且,当大多数设备都能正常运行时,我也不想删除此代码。2.您知道一些新的可靠方法,如何在删除某些文件时通知MediaScanner,以及如何立即刷新MTP的内容吗?

Gün*_*ena 0

最有可能的是它与设备上的缓存有关。捕获异常并忽略并不好,但我的问题已解决并且似乎有效。