我对Android比较陌生,无法实现这一点。
到目前为止,我有一个应用程序,它有一个大的圆形红色按钮。当用户按下它时,它会执行一个操作(此时显示“Hello World”)。
相反,我希望删除Android设备上的所有照片。 (是的,这很奇怪,我知道)
我的问题:
这可能吗?我无法让它工作,也找不到以前做过的应用程序。
我唯一拥有的Android设备是Nexus 7平板电脑。我希望它适用于Android手机和平板电脑。这也是可能的,因为据我所知,他们的目录结构各不相同?
答案 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))});