从 Android 台设备中删除所有照片
Delete all photos from Android device
在我的应用程序中有一个按钮可以删除 phone 中所有未售出的照片,因此没有人可以看到 phone 中的照片。
这个按钮后面的代码是这个
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);
不确定它停止的原因以及如何修复它
有人可以帮我吗?
谢谢
不一定回答问题,但有几点建议:
从设备的 MediaStore 中删除照片并不会删除它们的所有痕迹。具体来说,许多设备维护一个缩略图缓存,其中包含所有照片的缩略图,甚至是已删除的照片。这些缩略图通常具有足够的分辨率,可以看到人脸和文字。缩略图缓存需要单独删除,不同机型位置不同。
从 Android 设备擦除数据的正确方法是执行 factory-reset,这是所有设备都提供的功能。即使这样,某些设备上的出厂重置也不会完全擦除内部存储器,这意味着如果设备已 root,照片可能仍然可以恢复。
在我的应用程序中有一个按钮可以删除 phone 中所有未售出的照片,因此没有人可以看到 phone 中的照片。
这个按钮后面的代码是这个
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);
不确定它停止的原因以及如何修复它
有人可以帮我吗?
谢谢
不一定回答问题,但有几点建议:
从设备的 MediaStore 中删除照片并不会删除它们的所有痕迹。具体来说,许多设备维护一个缩略图缓存,其中包含所有照片的缩略图,甚至是已删除的照片。这些缩略图通常具有足够的分辨率,可以看到人脸和文字。缩略图缓存需要单独删除,不同机型位置不同。
从 Android 设备擦除数据的正确方法是执行 factory-reset,这是所有设备都提供的功能。即使这样,某些设备上的出厂重置也不会完全擦除内部存储器,这意味着如果设备已 root,照片可能仍然可以恢复。