EXTRA_OUTPUT игнорируется на Eris, заставляет данные возвращать ноль на G1 - PullRequest
0 голосов
/ 25 ноября 2010

Итак, я пытаюсь запустить действие камеры, используя следующий код:

//In public void captureImage()
...
Intent cameraIntent = new Intent(MediaStore.ACTION_CAPTURE_IMAGE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                      Uri.fromFile(new File("/sdcard/image.jpg")));
startActivityForResult(cameraIntent, REQUEST_CAMERA);

А затем обработать результат:

//In onActivityResult()
...
case REQUEST_CAMERA:
  Intent intent = new Intent (CurrentScreen.this, NextScreen.this);
  intent.putExtra(data);
  startActivity(intent);
  CurrentScreen.this.finish();
...

Где я использую intent.putExtra(data), чтобы прикрепить маленькое растровое изображение к цели и использовать его в качестве эскиза в следующем упражнении, и файл полного размера предположительно сохраняется как /sdcard/image.jpg.

Это ожидаемое поведение (в соответствии с документацией), когда у вас есть небольшое растровое изображение для миниатюры и большой сохраненный файл. Однако, когда я проверял это на G1 и Eris, я видел странное поведение.

На G1:

  • Хотя resultCode показывает RESULT_OK, данные о намерениях, возвращаемые обработчику результатов, равны нулю.
  • Кроме того, EXTRA_OUTPUT, кажется, полностью игнорируется, я понятия не имею, где он сохраняет изображение.

На Эрис:

  • Данные о намерениях возвращаются, ОК
  • EXTRA_OUTPUT также игнорируется, но он сохраняет изображения в обычном хранилище мультимедиа в /sdcard/dcim/100media

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

1 Ответ

0 голосов
/ 08 декабря 2010

У меня нет ответов на ваш вопрос, так как я новичок в мире разработки Java / Android.Но я пытаюсь сделать что-то похожее на то, что вы делаете, за исключением того, что я хочу просто сделать снимок, а затем прикрепить его к сообщению электронной почты.

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

Но то, что я действительно собирался сказать, возможно, вам придется проверитьПэт "/ SDCard / ..." на самом деле существует или нет.Также вы могли бы упростить свой процесс, передав путь к следующему занятию.

Удачи,

Джейми Ирвин

...