删除Android上的所有照片

时间:2013-04-08 18:05:15

标签: java android photos

我对Android比较陌生,无法实现这一点。

到目前为止,我有一个应用程序,它有一个大的圆形红色按钮。当用户按下它时,它会执行一个操作(此时显示“Hello World”)。

相反,我希望删除Android设备上的所有照片。 (是的,这很奇怪,我知道)

我的问题:

  1. 这可能吗?我无法让它工作,也找不到以前做过的应用程序。

  2. 我唯一拥有的Android设备是Nexus 7平板电脑。我希望它适用于Android手机和平板电脑。这也是可能的,因为据我所知,他们的目录结构各不相同?

1 个答案:

答案 0 :(得分:3)

是的,你可以删除图像,但我不怀疑你可以一次完成所有这些。

我建议您查询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();
    }

然后删除,你可以在原始循环中做到这一点或循环遍历arraylist,但这里是如何删除:

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