答案 0 :(得分:0)
我是否理解您想要用相机拍照并将其存储在内存中?然后我有两个建议:
你有没有尝试过描述的方式 http://developer.android.com/training/camera/photobasics.html 将带有Uri的MediaStore.EXTRA_OUTPUT填充到内部存储器?
如果这无助于将图像直接保存在内部存储中,为什么不从getExternalStorageDirectory()返回的模拟路径中删除它?据我所知,通过此路径访问文件非常有效,即使它可能只是一个链接。
答案 1 :(得分:0)
很抱歉回答我自己的问题,希望这对其他开发者有用: 我的策略:按照问题中的描述捕获照片,将其保存到内部存储器中(data / data / com.package ...) 之后,使用以下方法从公用文件夹(DCIM / MEDIA / 100MEDIA)中删除它(删除该文件夹中最后拍摄的图片...):
private void deleteLastPhotoTaken() {
String[] projection = new String[] {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.DATA,
MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME,
MediaStore.Images.ImageColumns.DATE_TAKEN,
MediaStore.Images.ImageColumns.MIME_TYPE };
final Cursor cursor = getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection,
null,null, MediaStore.Images.ImageColumns.DATE_TAKEN + "
DESC");
if (cursor != null) {
cursor.moveToFirst();
int column_index_data =
cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
String image_path = cursor.getString(column_index_data);
File file = new File(image_path);
if (file.exists()) {
file.delete();
如其他解决方案中所述:不要关闭光标! Android会为你做到这一点。