分享是一种快乐,一个个小小的问题困扰良久,终于找到一篇行之有效的方法,简单几行代码实现了图片和视频的同步更新到系统图库,代码如下:
/**
* 将视频插入图库
* @param url 视频路径地址
*/
public void updateVideo(String url){
File file=new File(url);
//获取ContentResolve对象,来操作插入视频
ContentResolver localContentResolver = this.getContentResolver();
//ContentValues:用于储存一些基本类型的键值对
ContentValues localContentValues = getVideoContentValues(this, file, System.currentTimeMillis());
//insert语句负责插入一条新的纪录,如果插入成功则会返回这条记录的id,如果插入失败会返回-1。
Uri localUri = localContentResolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, localContentValues);
}
//再往数据库中插入数据的时候将,将要插入的值都放到一个ContentValues的实例当中
public static ContentValues getVideoContentValues(Context paramContext, File paramFile, long paramLong){
ContentValues localContentValues = new ContentValues();
localContentValues.put("title", paramFile.getName());
localContentValues.put("_display_name", paramFile.getName());
localContentValues.put("mime_type", "video/3gp");
localContentValues.put("datetaken", Long.valueOf(paramLong));
localContentValues.put("date_modified", Long.valueOf(paramLong));
localContentValues.put("date_added", Long.valueOf(paramLong));
localContentValues.put("_data", paramFile.getAbsolutePath());
localContentValues.put("_size", Long.valueOf(paramFile.length()));
return localContentValues;
}
//android把图片文件添加到相册
public void udpateMedia(String url){
//图片路径
File file=new File(url);
ContentResolver localContentResolver = getContentResolver();
ContentValues localContentValues = getImageContentValues(UnityPlayerNativeActivity.this, file, System.currentTimeMillis());
localContentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, localContentValues);
Intent localIntent = new Intent("android.intent.action.MEDIA_SCANNER_SCAN_FILE");
final Uri localUri = Uri.fromFile(file);
localIntent.setData(localUri);
//发送广播即时更新图库
sendBroadcast(localIntent);
}
//再往数据库中插入数据的时候将,将要插入的值都放到一个ContentValues的实例当中
public static ContentValues getImageContentValues(Context paramContext, File paramFile, long paramLong){
ContentValues localContentValues = new ContentValues();
localContentValues.put("title", paramFile.getName());
localContentValues.put("_display_name", paramFile.getName());
localContentValues.put("mime_type", "image/jpeg");
localContentValues.put("datetaken", Long.valueOf(paramLong));
localContentValues.put("date_modified", Long.valueOf(paramLong));
localContentValues.put("date_added", Long.valueOf(paramLong));
localContentValues.put("orientation", Integer.valueOf(0));
localContentValues.put("_data", paramFile.getAbsolutePath());
localContentValues.put("_size", Long.valueOf(paramFile.length()));
return localContentValues;
}
原文地址: 点击打开链接
如果大家对ContentResolver、ContentProvider不熟悉。有三篇文章还不错:链接1,点击阅览 链接2,点击阅览 链接3,点击阅览