我总是为我的问题找到以下答案:
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"
+ Environment.getExternalStorageDirectory())));
但它不适用于我的系统(Nexus4 Android 4....)
我可以使用此代码创建一个文件并将其添加到 Media-DB
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri contentUri = Uri.fromFile(file);
mediaScanIntent.setData(contentUri);
context.sendBroadcast(mediaScanIntent);
其中“文件”是我要添加的新图像文件。
删除文件后,我尝试通过
Intent intent = new Intent(Intent.ACTION_MEDIA_MOUNTED);
Uri contentUri = Uri.parse("file://" + Environment.getExternalStorageDirectory());
intent.setData(contentUri);
context.sendBroadcast(intent);
或者
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"
+ Environment.getExternalStorageDirectory())));
但是画廊中仍然有空的占位符。
我不知道为什么?...
为了安全起见,我也在 AndroidManifest.xml 中添加了我的 Activity
<intent-filter>
<action android:name="android.intent.action.MEDIA_MOUNTED" />
<data android:scheme="file" />
</intent-filter>
但结果是一样的。有什么想法可以解决这个问题吗?