Android MediaStore扫描 & 向MediaStore中插入文件记录
2015-12-09 15:25
579 查看
http://www.cnblogs.com/androidwsjisji/archive/2012/10/24/2737604.html
[java] view
plaincopy
private void scanSingleFile(String filePath) {
if (filePath == null) {
return;
}
// broadcast to scan file
boolean bmnt = Environment.getExternalStorageDirectory().getPath()
.startsWith("/mnt");
bmnt = mDownloadDestination
.equalsIgnoreCase(UpDownloadUtils.DOWNLOAD_DEST_SDCARD) ? bmnt
: false;
File file = new File(bmnt ? ("/mnt" + filePath) : filePath);
MediaScannerConnection.scanFile(mContext,
new String[] { file.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
@Override
public void onScanCompleted(String path, Uri uri) {
ContentResolver cr = mContext.getContentResolver();
long datemodified = 0;
long dateadded = 0;
Cursor cursor = cr.query(uri, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
datemodified = cursor.getLong(cursor
.getColumnIndex(MediaStore.MediaColumns.DATE_MODIFIED));
dateadded = cursor.getLong(cursor
.getColumnIndex(MediaStore.MediaColumns.DATE_ADDED));
cursor.close();
}
ContentValues values = new ContentValues();
if (datemodified > 0
&& String.valueOf(datemodified).length() > 10) {
values.put(MediaStore.MediaColumns.DATE_MODIFIED,
datemodified / 1000);
}
if (dateadded > 0
&& String.valueOf(dateadded).length() > 13) {
values.put(MediaStore.MediaColumns.DATE_ADDED,
dateadded / 1000);
}
if (values.size() > 0) {
cr.update(uri, values, null, null);
}
}
});
}
[java] view
plaincopy
ContentValues newValues = new ContentValues(6);
String title = FileName.substring(0, pointIndex);
newValues.put(MediaStore.Images.Media.TITLE,
FileName.substring(0, pointIndex));
newValues.put(MediaStore.Images.Media.DISPLAY_NAME,
sourceFile.getName());
newValues.put(MediaStore.Images.Media.DATA, sourceFile.getPath());
newValues.put(MediaStore.Images.Media.DATE_MODIFIED,
System.currentTimeMillis() / 1000);
newValues.put(MediaStore.Images.Media.SIZE, sourceFile.length());
newValues.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
uri = contentResolver.insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, newValues);
通知MediaStore扫描某个文件:
[java] view
plaincopy
private void scanSingleFile(String filePath) {
if (filePath == null) {
return;
}
// broadcast to scan file
boolean bmnt = Environment.getExternalStorageDirectory().getPath()
.startsWith("/mnt");
bmnt = mDownloadDestination
.equalsIgnoreCase(UpDownloadUtils.DOWNLOAD_DEST_SDCARD) ? bmnt
: false;
File file = new File(bmnt ? ("/mnt" + filePath) : filePath);
MediaScannerConnection.scanFile(mContext,
new String[] { file.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
@Override
public void onScanCompleted(String path, Uri uri) {
ContentResolver cr = mContext.getContentResolver();
long datemodified = 0;
long dateadded = 0;
Cursor cursor = cr.query(uri, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
datemodified = cursor.getLong(cursor
.getColumnIndex(MediaStore.MediaColumns.DATE_MODIFIED));
dateadded = cursor.getLong(cursor
.getColumnIndex(MediaStore.MediaColumns.DATE_ADDED));
cursor.close();
}
ContentValues values = new ContentValues();
if (datemodified > 0
&& String.valueOf(datemodified).length() > 10) {
values.put(MediaStore.MediaColumns.DATE_MODIFIED,
datemodified / 1000);
}
if (dateadded > 0
&& String.valueOf(dateadded).length() > 13) {
values.put(MediaStore.MediaColumns.DATE_ADDED,
dateadded / 1000);
}
if (values.size() > 0) {
cr.update(uri, values, null, null);
}
}
});
}
向MediaStore中插入文件记录
[java] view
plaincopy
ContentValues newValues = new ContentValues(6);
String title = FileName.substring(0, pointIndex);
newValues.put(MediaStore.Images.Media.TITLE,
FileName.substring(0, pointIndex));
newValues.put(MediaStore.Images.Media.DISPLAY_NAME,
sourceFile.getName());
newValues.put(MediaStore.Images.Media.DATA, sourceFile.getPath());
newValues.put(MediaStore.Images.Media.DATE_MODIFIED,
System.currentTimeMillis() / 1000);
newValues.put(MediaStore.Images.Media.SIZE, sourceFile.length());
newValues.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
uri = contentResolver.insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, newValues);
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories