拍照后数据的保存更新 Media Provider

本文详细解析了UrisaveMediaEntry方法的实现过程,包括如何使用ContentValues存储图片元数据并插入到MediaStore中,同时处理位置信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Uri saveMediaEntry(String imagePath,String title,String description,long dateTaken,int orientation,Location loc) {
	ContentValues v = new ContentValues();
	v.put(Images.Media.TITLE, title);
	v.put(Images.Media.DISPLAY_NAME, displayName);
	v.put(Images.Media.DESCRIPTION, description);
	v.put(Images.Media.DATE_ADDED, dateTaken);
	v.put(Images.Media.DATE_TAKEN, dateTaken);
	v.put(Images.Media.DATE_MODIFIED, dateTaken) ;
	v.put(Images.Media.MIME_TYPE, "image/jpeg");
	v.put(Images.Media.ORIENTATION, orientation);
 
	File f = new File(imagePath) ;
	File parent = f.getParentFile() ;
	String path = parent.toString().toLowerCase() ;
	String name = parent.getName().toLowerCase() ;
	v.put(Images.ImageColumns.BUCKET_ID, path.hashCode());
	v.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, name);
	v.put(Images.Media.SIZE,f.length()) ;
	f = null ;
 
	if( targ_loc != null ) {
		v.put(Images.Media.LATITUDE, loc.getLatitude());
		v.put(Images.Media.LONGITUDE, loc.getLongitude());
	}
	v.put("_data",imagePath) ;
	ContentResolver c = getContentResolver() ;
	return c.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, v);
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值