6

我对某些设备有疑问。我无法在任何设备上复制它,但我收到了一些用户报告的大量崩溃报告。

这是一个例外:

java.lang.IllegalArgumentException: Unknown URL content://media/external/file
    at android.content.ContentResolver.delete(ContentResolver.java:1024)

我用这个:

context.getContentResolver().delete(MediaStore.Files.getContentUri("external"), MediaStore.Files.FileColumns.DATA + "=?", new String[] { path });

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

顺便提一句。我只将它用于 API 11 和更新版本。外部存储肯定已安装。

我有这些问题: 1. 你知道这个异常发生的任何原因吗?我不想只是忽略异常。当它对大多数设备都很好时,我不想删除它。2.您知道一些新的可靠方法如何通知MediaScanner以及如何在删除某些文件时立即刷新MTP的内容吗?

4

1 回答 1

0

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

于 2016-11-02T22:48:21.270 回答