android删除手机照片

作者: DaZenD | 来源:发表于2017-09-21 20:35 被阅读0次

:项目开发中,临时用到,总结的。没有做深入学习,先写出来,记录一下。

public void deletePhotoWithPath(String path) {
    if (path != null && path.length() > 0) {
        File file = new File(path);
    }
}

public void deleteFile(File file) {
    if (file.exists()) { // 判断文件是否存在
        if (file.isFile()) { // 判断是否是文件
            file.delete(); // delete()方法 你应该知道 是删除的意思;
        } else if (file.isDirectory()) { // 否则如果它是一个目录
            File files[] = file.listFiles(); // 声明目录下所有的文件 files[];
            for (int i = 0; i < files.length; i++) { // 遍历目录下所有的文件
                deleteFile(files[i]); // 把每个文件 用这个方法进行迭代
            }
        }
        file.delete();
    }
}

在app中删除手机中的图片,如果使用file的delete方法,会出现删除不干净的情况,这个时候留有一个空白的文件,还是会显示在相册中。经过调查后,发现是数据库中没有更新导致的,后来经过测试多款机型,找到了一个比较好的方法,代码如下:

Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
ContentResolver mContentResolver = context.getContentResolver();
String where = MediaStore.Images.Media.DATA + "='" + filePath + "'";
//删除图片
mContentResolver.delete(uri, where, null);

其中,filepath为图片路径,这样删除以后,在有的机型里还会有残留,所以需要更新媒体库。代码如下:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    new MediaScanner(PreviewActivity.this, path);
} else {
    sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
}

但是敲的时候才发现,没有MediaScanner类。而是MediaScannerConnection

public static void updateMediaStore(final  Context context, final String path) {
    //版本号的判断  4.4为分水岭,发送广播更新媒体库
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
        MediaScannerConnection.scanFile(context, new String[]{path}, null, new MediaScannerConnection.OnScanCompletedListener() {
            public void onScanCompleted(String path, Uri uri) {
                Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
                mediaScanIntent.setData(uri);
                context.sendBroadcast(mediaScanIntent);
            }
        });
    } else {
        File file = new File(path);
        String relationDir = file.getParent();
        File file1 = new File(relationDir);
        context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.fromFile(file1.getAbsoluteFile())));
    }
}

相关文章

  • android删除手机照片

    记:项目开发中,临时用到,总结的。没有做深入学习,先写出来,记录一下。 在app中删除手机中的图片,如果使用fil...

  • 6个不为人知的黑科技App神器,建议低调收藏使用

    1:手机照片恢复助手 手机照片恢复助手是一款帮你免费恢复你已经删除的手机照片的一款软件。 它支持对你所有删除的照片...

  • 手机小技巧,怎么恢复手机里删除的图片

    怎么恢复手机里删除的图片 相册照片不小心删了怎么恢复?怎样恢复手机删除的照片?手机照片是十分重要的数据,大家...

  • iphone导入照片无法删除处理笔记!

    爱思助手导入到手机的图片,在照片,照片图库中无法删除。iphone手机图库中选择要删除的图片也无法删除,按钮为灰色...

  • 2018-11-30

    小米手机不小心删除的照片怎么恢复? 手机不小心删除的照片怎么恢复?手机是人们经常带在身边的东西,现在的手机像素基本...

  • 2018-11-22

    OPPO手机照片不小心删除了怎么恢复? 手机删除的照片怎么恢复?在使用手机的时候,发现多了很多莫名的文件夹,里面还...

  • 2018-11-27

    看一眼就能学会如何恢复手机删除的照片 如何恢复手机删除的照片?相信很多小伙伴都有不小心把照片删了,可是又找不到怎么...

  • 拼多多今日热搜

    近日,网友爆料称拼多多APP将其手机相册里的照片删除,被vivo手机系统检测到。该网友称被删除的照片是自己保存的拼...

  • 手机上的图片删了还能找回吗

    手机照片删了是可以恢复的,而且恢复删除照片其实很简单的,只要掌握了下面这两种恢复方法,想要将删除的照片找回其实很简...

  • 应用iMazing,轻松管理苹果设备的照片!

    照相是任何手机的基础功能,因此照片管理对于手机来说非常重要,我们在使用手机过程中通常需要删除手机中照片或者是将手机...

网友评论

    本文标题:android删除手机照片

    本文链接:https://www.haomeiwen.com/subject/efbtextx.html