我正在搜索如何使用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? 任何帮助将不胜感激。