java - 删除 Android 上的所有照片

标签 java android photos

我对 Android 还比较陌生,无法实现此功能。

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

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

我的问题:

  1. 这可能吗?我在让它工作时遇到了麻烦,并且找不到以前完成此操作的应用程序。

  2. 我拥有的唯一 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/

相关文章:

java - 我无法弄清楚空指针异常错误?

java - readObject 挂起应用程序

java - php 中的变量不会显示在 android 上(使用 json)

iphone - 嵌套UIScrollView-iPhone照片应用

ios - 如何使用 [camera takePhoto] 并使用 UIImagePicker 进行编辑 - UIImagePickerController.allowsEditing = YES

ios - 如何将我的 ios 应用程序集成到 iOS 消息照片查看器的 "Share out" Pane 中?

java - 网络应用 : welcome-file-list not working using servlet-mapping

java - 检查 POST 是否成功 (Android)

java - (Android Studio) 我的 Tic-Tac-Toe 游戏由于 (java.lang.IllegalStateException : Could not execute method for android:onClick) error

java - Android:找不到处理 Intent 的 Activity