使用MediaStore将图像存储到特定文件夹

时间:2012-05-04 01:56:10

标签: android android-sdcard android-mediascanner

我正在搜索如何使用mediastore添加图像,因为我目前正在手动使用

final String myBitmap = "MyImage_"+ mFileDate + ".png";
File fileNumber = new File(APP_FILE_PATH, myBitmap);
out = new FileOutputStream( fileNumber );
final Bitmap mBitmap =getBitmap();
mBitmap.compress( Bitmap.CompressFormat.PNG, 85, out );
out.flush();

但是我需要媒体管理器用来存储的ID,因为它更容易管理id而不是路径等。 我尝试这样添加:

ContentValues values = new ContentValues();
values.put(Images.Media.TITLE, mFileName.getName());
values.put(Images.Media.DESCRIPTION, getString(R.string.bitdraw_description));
values.put(Images.Media.MIME_TYPE, "image/png");

Uri uri = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values);
out = getContentResolver().openOutputStream(uri);
mBitmap.compress( Bitmap.CompressFormat.PNG, 85, out );
out.flush();

然而,这会将图像添加到保存照片的文件夹中,而不是添加到我想要的特定文件夹中。

在手册(第一部分)之后也试过这个:

Media.insertImage(getContentResolver(), mFileName.getPath(), mFileName.getName(), getString(R.string.description));

但这仅产生重复,因为图像首先由outputStream

保存

我在线程上找到的解决方法是调用这样的广播:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse ("file://"+ Environment.getExternalStorageDirectory())));

但这是相当有用的,需要很长时间,我希望它是最快的,我不确定这是否真的生成了ID,如果确实如此,我怎么能让它只扫描一个特定的文件夹在SD? 任何帮助将不胜感激。

0 个答案:

没有答案