系统相册显示SD卡照片时,为了提高效率不是遍历文件系统中每个目录中的图片后显示出来。而且直接查询系统数据库中的图片信息记录显示。
所以自己新建图片后,打开系统相册时,会找不到所新建的图片。这时可以通过几种方法将新建的图片插入到系统数据库中。
使用Broadcast
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
Uri uri = Uri.fromFile(new File("/sdcard/image.jpg"));
intent.setData(uri);
mContext.sendBroadcast(intent);
使用MediaScannerConnection
final MediaScannerConnection msc = new MediaScannerConnection(mContext, new MediaScannerConnectionClient() {
public void onMediaScannerConnected() {
msc.scanFile("/sdcard/image.jpg", "image/jpeg");
}
public void onScanCompleted(String path, Uri uri) {
Log.v(TAG, "scan completed");
msc.disconnect();
}
});
msc.connect();
这两种方法任何一种即可,第二种方法可以通过回调的参数uri取得插入到数据库后的主键id进行后续操作。
目前没有留言,等您坐沙发呢!