Intereting Posts
Аннотация @Override в Android Как записывать телефонные звонки в Android? Kotlin – Самый идиоматический способ преобразования списка в MutableList Как отсортировать несколько массивов ArrayLists вместе в java Android 4.4 Случайный сбой KitKat (Родной сбой в /system/lib/libc.so) Отсутствует GreenDao freemaker.jar Список по умолчанию для шрифтов, поддерживающих операционные системы android, ios и blackberry Как играть видео vimeo с помощью iframe в веб-обзоре? Google Analytics, установка отслеживания Android Android Keystore – может ли пользовательский ключ извлекаться root, если он настроен для этого пользователя? Android: FATAL EXCEPTION: AdWorker # 1 java.lang.NoSuchMethodError: java.io.IOException. <Init> Android M crash java.lang.UnsatisfiedLinkError: dlopen не удалось: Принудительное закрытие приложения со службой: onDestroy () не вызывается в службе? Подумайте о добавлении android: paddingStart = "25dp", чтобы лучше поддерживать макеты справа налево Ошибка Как создать границу вокруг Android LinearLayout?

Получить последнее изображение, сделанное пользователем

Эй, я хочу, чтобы последняя фотография была захвачена пользователем через любое приложение камеры. Я не знаю, как это сделать

Может кто-нибудь мне помочь?

Далее я хочу отправить это изображение в виде вложения в электронную почту или MMS.

благодаря

// Find the last picture String[] projection = new String[]{ MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATA, MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME, MediaStore.Images.ImageColumns.DATE_TAKEN, MediaStore.Images.ImageColumns.MIME_TYPE }; final Cursor cursor = getContext().getContentResolver() .query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, MediaStore.Images.ImageColumns.DATE_TAKEN + " DESC"); // Put it in the image view if (cursor.moveToFirst()) { final ImageView imageView = (ImageView) findViewById(R.id.pictureView); String imageLocation = cursor.getString(1); File imageFile = new File(imageLocation); if (imageFile.exists()) { // TODO: is there a better way to do this? Bitmap bm = BitmapFactory.decodeFile(imageLocation); imageView.setImageBitmap(bm); } } 

Я все еще работаю над отправкой части MMS.

Вдохновленный 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; } }