Использование камеры без SD-карты на Android - PullRequest
7 голосов
/ 04 декабря 2011

Я просто хочу подтвердить, что камера не может быть использована без SD-карты на Android?

Я запускаю намерение MediaStore.ACTION_IMAGE_CAPTURE использовать камеру и пытался заставить камеру сохранить изображениев папке данных приложений

    ContentValues values = new ContentValues();
    values.put(Media.TITLE, "Image");
    values.put(Images.Media.BUCKET_ID, path.hashCode());
    values.put(Images.Media.BUCKET_DISPLAY_NAME, name);

    values.put(Images.Media.MIME_TYPE, "image/png");
    values.put(Media.DESCRIPTION, "Image capture by camera");
    values.put("_data", Constants.imagePath);

    Uri uri = getContentResolver().insert(
            Media.EXTERNAL_CONTENT_URI, values);
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);

    startActivityForResult(cameraIntent, PICTURE_ACTIVITY);

Я предполагаю, что камера не может получить доступ к папке данных приложений

Так что без SD-карты невозможно использовать камеру?

Ответы [ 3 ]

2 голосов
/ 15 декабря 2012

Существует еще один способ захвата изображения, используя предварительный просмотр камеры на виде поверхности.

С помощью этой вещи вы можете сохранить предыдущее изображение и сделать снимок. Вы можете передать директорию кеша вашего приложения getCacheDir() метод контекста.

Ссылка :

1) https://github.com/commonsguy/cw-advandroid/tree/master/Camera/Preview/
2) http://android -er.blogspot.in / 2010/12 / camera-preview-on-surfaceview.html

0 голосов
/ 04 декабря 2011

http://developer.android.com/guide/topics/media/camera.html#saving-media предполагает возможность сохранения изображений в местах, отличных от SD-карты:

Медиафайлы ... следует сохранитьКаталог внешнего хранилища устройства (SD-карта)

(Мой акцент)

Использование внутреннего хранилища, однако, быстро истощит то, что обычно является очень ограниченным ресурсом иЭто означает, что файлы переносятся только с телефона, но не с извлеченной SD-карты.

Я бы посоветовал для надежности и в интересах «наилучшей практики» (фраза, которая мне не нравится), следоватьрекомендации в этом руководстве.

Кажется, что встроенное приложение камеры соответствует этим рекомендациям, но было бы возможно написать приложение, которое этого не делает.

0 голосов
/ 04 декабря 2011

Без SD-карты приложение камеры отобразит:

Пожалуйста, вставьте SD-карту перед использованием камеры.

Так что нет, невозможно.

Редактировать: Проверка Камера Исходный код приложения, updateStorageHint(int remaining) предполагает, что он всегда будет отображать текст «Нет памяти», если нет SD-карты (также проверьте MenuHelper calculatePicturesRemaining()).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...