Попробуйте это в вашем Activity
или Fragment
.
static final int REQUEST_IMAGE_CAPTURE = 1;
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
и используйте этот метод переопределения для возврата изображения ...
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
mImageView.setImageBitmap(imageBitmap);
}
}
Пример примера: Ссылка
Есть два типа намерений:
Explicit intents
укажите, какой application
будет удовлетворять intent
, указав либо имя пакета целевого приложения, либо полное имя класса компонента. Обычно вы используете explicit intent
для запуска компонента в своем собственном приложении, поскольку вы знаете имя класса действия или службы, которую хотите запустить. Например, вы можете запустить новый activity
в своем приложении в ответ на действие пользователя или запустить службу для загрузки файла в фоновом режиме.
Implicit intents
не называют конкретный компонент, а вместо этого объявляют общее действие для выполнения, которое позволяет компоненту из другого приложения обрабатывать его. Например, если вы хотите показать пользователю местоположение на карте, вы можете использовать неявное намерение запросить, чтобы другое способное приложение показало указанное местоположение на карте. Подробнее
Примечание: - Захват изображения Implicit intent
. Вы должны использовать startActivityforResult()
. Он будет использовать ваше программное обеспечение ОС для захвата изображения и возврата к нему.