Android 删除拍照后相册自动保存的图片

通过MediaStore.Video.Media.query获取资源进行删除(有些版本无法正常删除)

 private void deletImage() {
        ContentResolver resolver = getContentResolver();
        Cursor cursor = MediaStore.Images.Media.query(resolver,
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[]{MediaStore.Images.Media._ID},
                MediaStore.Images.Media.DATA + "=?",
                new String[]{tempImgPath}, null);
        boolean res = false;
        if (cursor.moveToFirst()) {
            long id = cursor.getLong(0);
            Uri contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
            Uri uri = ContentUris.withAppendedId(contentUri, id);
            int count = getContentResolver().delete(uri, null, null);
            res = count == 1;
        } else {
            File file = new File(tempImgPath);
            res = file.delete();
        }
        //如果要删除的图片是收藏的图片,则要从收藏的表里删除
        if (!res) {
            Toast.makeText(SignatureActivity.this, "删除失败,可以在系统图库中删除。", Toast.LENGTH_LONG).show();
        }
    }
  • 获取多媒体资源
public static final Cursor query(ContentResolver cr, Uri uri, String[] projection,
                        String selection, String [] selectionArgs, String orderBy)
  • 解析:

ContentResolver cr :
ContentResolver是应用与资源之间的衔接人,它的示例通常可以通过在Activity中调用的getContentResolver()方法中获取
Uri uri:
前面提到的多媒体文件的第一种地址描述
eg: MediaStore.Images.Media.EXTERNAL_CONTENT_URI 图片的外部库地址
--
String[] projection:这个参数限定了返回的内容(列Column)。
eg: new String[]{ MediaStore.Images.Media.DISPLAY_NAME,MediaStore.Images.Media._ID } :限定了返回的结果中只包含图片的 DISPLAY_NAME 和 _ID 信息
--
String selection:
设置条件,相当于SQL语句中的where。null表示不进行筛选。
eg: MediaStore.Images.Media.DATA + "=?'tempImgPath'" ,只返回名称为 helloworld 的图片数据。
--
String [] selectionArgs:
这个参数是要配合selection参数使用的,如果你在selection 参数里面有?,那么你在selectionArgs写的数据就会替换掉?
eg:当 selection = MediaStore.Images.Media.DATA + “=?” ,selectionArgs= new String[]{"tempImgPath"}的效果与上个例子是一样的
--
String orderBy:
按照什么进行排序,相当于SQL语句中的Order by。默认排序是升序,+" ASC"写不写效果都一样。如果想要结果按照ID的降序排列:orderBy=MediaStore.Images.Media._ID+" desc " 。


作者:haha_zhan
来源:CSDN
原文:https://blog.csdn.net/haha_zhan/article/details/52584331
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(Android 删除拍照后相册自动保存的图片)