Android媒体文件(图片 视频 音频 等文件)需要扫描到媒体库中才能通过相关的程序来查看. 比如 编写一个程序从互联网上下载一个图片保存到SDCard中,退出程序打开系统图片程序并看不到刚刚下载的图片. 这就是因为图片没有在系统媒体库注册的原因. 在系统启动的时候(或者SDCard从新载入的时候)系统会扫描媒体文件,并注册新发现的文件. 下面的示例就是如何通过代码来注册新的媒体文件.
通过 MediaScannerConnection来实现.
public class MediaScannerClient implements MediaScannerConnectionClient {
private Context mContext;
private MediaScannerConnection mConnection;
private String mPath;
private String mMimeType;
public MediaScannerClient(Context ctx,String path,String mimeType) {
mContext = ctx;
mPath = path;
mMimeType = mimeType;
mConnection = new MediaScannerConnection(ctx, this);
mConnection.connect();
}
@Override
public void onMediaScannerConnected() {
mConnection.scanFile(mPath, mMimeType);
}
@Override
public void onScanCompleted(String path, Uri uri) {
mConnection.disconnect();
mContext = null;
}
}要注册一个新的文件只要使用文件系统路径和文件类型调用上面的类就可以了.
例如:
new MediaScannerClient(getBaseContext(), "filepath", "image/png");