Android Inbuild (ActionImageCapture) намерение возвращает нулевое намерение. Не может доставить результат {who = null} - PullRequest
5 голосов
/ 23 ноября 2011

Я использую камеру по умолчанию, чтобы получить изображение в моем приложении. Проблема в том, что камера возвращает ноль на onActivityResult(). ResultCode и RequestCode возвращаются, как и ожидалось.

Мой намеренный вызов:

private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 1224;
....
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);

Результат активности:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
    //use imageUri here to access the image
    Uri imageuri = data.getData(); // here is getting crash 
    imageView.setImageFromUri(imageUri);
}
}
}

void setImageFromUri(Uri imgUri){
 ... TODO assign image from uri
}

Когда я поставил Log, я получил, что resultCode и responseCode не равны нулю

resultCode = -1
requestCode = 1224

Где я делаю ошибку?

Но снятый снимок сохраняется в пути (imageUri), как я указал

Есть ли другой способ получить изображение с помощью камеры.

1 Ответ

10 голосов
/ 13 декабря 2011

Кажется, вы знаете imageUri до onActivityResult. Это не правильный ответ, но он будет работать нормально.

intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 

// Это изображение, которое вы собираетесь использовать только

Так что не используйте

 Uri imageuri = data.getData();

просто используйте известный вам URI.

ваш код выглядит так:

if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
  if (resultCode == RESULT_OK) {
//use imageUri here to access the image
imageView.setImageFromUri(imageUri); // imageUri should be global in the activity
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...