我的某些设备存在问题。我不能在任何设备上复制它,但我有一些用户报告了很多崩溃报告。
这是个例外:
java.lang.IllegalArgumentException: Unknown URL content://media/external/file
at android.content.ContentResolver.delete(ContentResolver.java:1024)
我用这个:
context.getContentResolver()。删除(MediaStore.Files.getContentUri( “外部”), MediaStore.Files.FileColumns.DATA +“=?”,new String [] {path});
之后我在文件的父目录上调用MediaScannerConnection.scanFile()
,因为它是如何通知MediaScanner删除文件以及如何刷新MTP内容的最实用的方法。我尝试了在stackoverflow上找到的所有其他方法(例如Android How to use MediaScannerConnection scanFile),但没有什么比这更好。
顺便说一下。我只将它用于API 11和更新版本。外部存储肯定是安装的。
我有这些问题: 你知道出现这种异常的原因吗?我不想只是忽略异常。当它对大多数设备起作用时,我不想删除此代码。 2.您是否知道一些新的可靠方法如何通知MediaScanner以及如何在删除某个文件时立即刷新MTP内容?
答案 0 :(得分:0)
最有可能的是它与设备上的缓存有关。抓住异常并忽略并不好,但我的问题已修复,似乎有效。