从Android设备删除所有照片

时间:2017-02-09 15:39:46

标签: android file-get-contents delete-file

在我的应用程序中,有一个按钮可以在手机售出之前删除手机中的所有照片,因此没有人可以在手机中看到照片。

这个按钮后面的代码就是这个

      List<Long> mediaStoreIds = new ArrayList<Long>();

        Cursor c = getApplicationContext().getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{BaseColumns._ID}, null, null, null);

        if (c != null) {
            final int id = c.getColumnIndexOrThrow(BaseColumns._ID);

            c.moveToFirst();
            while (!c.isAfterLast()) {
                Long mediaStoreId = c.getLong(id);

                mediaStoreIds.add(mediaStoreId);
                getApplicationContext().getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, BaseColumns._ID + "=?", new String[]{Long.toString(mediaStoreId)});

                c.moveToNext();
            }
            c.close();
        }


    }

问题是,当调试器到达此行时,它会停止

Cursor c = getApplicationContext().getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{BaseColumns._ID}, null, null, null);

不确定为什么会停止以及如何解决它

任何人都可以帮助我吗?

由于

1 个答案:

答案 0 :(得分:1)

不一定回答这个问题,而是提出一些建议:

  • 从设备的MediaStore中删除照片不会删除它们的所有痕迹。具体来说,许多设备维护一个缩略图缓存,其中包含所有照片的缩略图,甚至是已删除的缩略图这些缩略图通常具有足够的分辨率来查看面部和文本。缩略图缓存需要单独删除,其位置因设备型号不同而不同。

  • 从Android设备擦除数据的正确方法是执行出厂重置,这是所有设备提供的功能。即使这样,某些设备上的出厂重置也无法完全擦除内部存储器,这意味着如果设备已植根,照片可能仍然可以恢复。

相关问题