«Android — делаем фото» возвращает resultCode=-1 и data=null — день назад было все в порядке!?

Здравствуйте, решений на просторах нашел много, но не могу понять, что я сделал не так, Вроде должно работать.


Фото делается и на карточку сохраняется.

private void takePicture() {
		Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
		File photoFile = new File(Environment.getExternalStorageDirectory(), StartMenuActivity.DIR_NAME + "/" + travelDirName
				+ "/" + travelDirName + "_" + poisArray.size() + ".jpg");

		cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));

		imageOrVideoUri = Uri.fromFile(photoFile);

		startActivityForResult(cameraIntent, CAMERA_REQUEST_PICTURE);
	}

	private void takeVideo() {
		Intent cameraIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
		File videoFile = new File(Environment.getExternalStorageDirectory(), StartMenuActivity.DIR_NAME + "/" + travelDirName
				+ "/" + travelDirName + "_" + poisArray.size() + ".mp4");
		cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(videoFile));

		imageOrVideoUri = Uri.fromFile(videoFile);

		startActivityForResult(cameraIntent, CAMERA_REQUEST_VIDEO);
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		//super.onActivityResult(requestCode, resultCode, data);

		if ((resultCode == RESULT_OK)&&(data != null)) {
			if (requestCode == CAMERA_REQUEST_PICTURE) {
				createThumbnail();
				addPoi(PICTURE_POI);
			}
			if (requestCode == CAMERA_REQUEST_VIDEO) {
				addPoi(VIDEO_POI);
			}
		} else {
			Toast.makeText(TravelMapActivity.this, R.string.poi_add_error, Toast.LENGTH_LONG).show();
		}
	}



Спасибо.
  • Вопрос задан
  • 3644 просмотра
Пригласить эксперта
Ответы на вопрос 2
palmut
@palmut
Поясните пожалуйста вопрос. Вы делаете фото, Вам возвращается ответ. При этом resultCode = -1 (что есть RESULT_OK), а data = null, что тоже есть правильно, поскольку при вызове явно указали куда сохранять имидж. Вроде все в порядке — картинка будет в imageOrVideoUri и проверку &&(data != null) надо просто убрать. По документации, если указывается MediaStore.EXTRA_OUTPUT, то там будет полноразмерный снимок, если не указывается — то в data будет Bitmap маленького размера. Или я что-то не так понял?
Ответ написан
palmut
@palmut
Что-то непонятно в начале takePicture:
private void takePicture() {
        Intent cameraIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
...

Вроде собираетесь делать фото, а в интент передаете ACTION_VIDEO_CAPTURE. Может в этом дело?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы