Вдохновленный https://stackoverflow.com/a/20065920/763459
Таким образом, основной проблемой в этом ответе было то, что не все устройства используют «DCIM» в качестве папки камеры.Затем я обнаружил, что если файл находится в папке, указанной приложением, он будет проиндексирован ContentResolver
, но другое приложение не имеет к нему доступа, что означает canRead=false
.Итак, здесь я придумаю другое решение:
while (cursor.moveToNext()) {
String imagePath = cursor.getString(cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA));
File imageFile = new File(imagePath);
if (imageFile.canRead() && imageFile.exists()) {
// we have found the latest picture in the public folder, do whatever you want
break;
}
}