我在Android设备上刷新图库时遇到问题。 用于调试的Android设备是带有SD卡的Galaxy Note 3。
删除文件后,必须在整个图库上进行刷新,否则图像仍然可以在手机图库中看到,即使它已被删除(因为没有更好的方法来执行此操作据我所知删除文件)
但是当我刷新时,应用程序强制关闭。我猜它与没有安装/卸载SD卡的手机有关。
除了这段代码之外,有没有办法刷新画廊?或者你知道为什么应用程序会在删除后强制关闭吗?
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
我也尝试使用该代码将其更改为类似的内容,但错误仍然存在。
String selectedFile = getRealPathFromURI(selectedURI);
me.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse(selectedFile)));
private String getRealPathFromURI(Uri contentURI) {
Cursor cursor = getContentResolver().query(contentURI, null, null, null, null);
if (cursor == null) { // Source is Dropbox or other similar local file path
return contentURI.getPath();
} else {
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
return cursor.getString(idx);
}
}
也是最后一招,我试过这个。该应用程序没有崩溃,但没有扫描文件/或修复问题。
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
编辑:我在“清单”中添加了仅用于
的权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
答案 0 :(得分:1)
找到了解决这个问题的方法。
您必须在主线程上执行此操作。可能有一种方法可以解决这个问题,如果有人加上这个,那就太棒了。
所以修复:由于某种原因,这必须在你的主要活动中执行。