我对 Android 还比较陌生,无法实现此功能。
到目前为止,我有一个应用程序,它有一个大的圆形红色按钮。当用户按下它时,它会执行一个操作(此时它显示“Hello World”)。
相反,我希望它删除 Android 设备上的所有照片。 (是的,我知道这是一件奇怪的事情)
我的问题:
这可能吗?我在让它工作时遇到了麻烦,并且找不到以前完成此操作的应用程序。
我拥有的唯一 Android 设备是 Nexus 7 平板电脑。我希望它能够在 Android 手机和平板电脑上运行。据我所知,这也可能吗?它们的目录结构有所不同?
最佳答案
是的,您可以删除图像,但我不怀疑您可以一次删除所有图像。
我建议您查询Mediastore获取所有图像的 _ID,然后循环遍历列表并删除它们。这是一些示例代码,但我确信它可以得到更好的优化。该代码与文件系统无关,因此它应该可以在任何地方工作。
获取 Mediastore.Images 上所有项目列表的代码
List<Long> mediaStoreIds = new ArrayList<Long>();
Cursor c = context.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);
c.moveToNext();
}
c.close();
}
然后要删除,您可以在原始循环中或循环遍历数组列表中执行此操作,但删除方法如下:
context.getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, BaseColumns._ID + "=?", new String[]{Long.toString(mediaStoreIds.get(i))});
关于java - 删除 Android 上的所有照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15885876/