Я использую камеру телефона в приложении для Android, чтобы сделать фотографию.Я использую Intents, чтобы использовать встроенное приложение камеры, и я использую следующий код:
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(FILEPATH)));
startActivityForResult(intent, ACTIVITY_NATIVE_CAMERA_AQUIRE);
Он работает нормально, и камера включена.Я могу сделать фотографию, и телефон предоставляет мне три варианта: Отмена, Повтор, ОК.Первые две работы, нажав кнопку отмены, возвращает пользователя в приложение, но при нажатии OK и ничего не происходит.Видимо onActivityResult не вызывается, а камера просто остается на экране.Ничего в отладчике тоже нет.
Запуск приложения на Nexus One с Android 2.2.1.Та же проблема на эмуляторе под управлением Android 2.0.
Редактировать : протестировано на HTC Desire под управлением Android 2.2 с пользовательским интерфейсом HTC Sense: работает отлично.Ничего в эмаляторе, ни в Google N1.
Edit2 : кажется, что запрос на получение изображения HTC Desire работает лучше в том смысле, что он возвращает, но не учитывает установку EXTRA_OUTPUT и возвращаеттолько небольшое изображение в onActivityResult -call.Проверяя консоль ddms, когда телефон подключен к компьютеру, я вижу, что телефон хранит изображение на SD-карте, но путь не возвращается к моему приложению.Начинает казаться, что нет надежного способа использовать намерение камеры и получить изображение разумного размера.Плохо, плохо, плохо.