2017-01-18 9 views
-2

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

Из-за того, что я узнал после того, как в течение некоторого времени Google Googling открывал камеру из приложения, но то, что я пытаюсь достичь, фактически открывает камеру по умолчанию, которая может использовать любую функцию, имеющуюся в приложении для камеры. Можете ли вы рассказать мне, как реализовать камеру?

ответ

2

Вы можете открыть приложение камеры с целью

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 

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

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAMERA_PIC_REQUEST) { 
      Bitmap image = (Bitmap) data.getExtras().get("data"); 
      // do whatever you want with the image now 
    } 
} 

Надеются, что это поможет.

0

Просто отправьте Intent к камере с просьбой фото:

static final int REQUEST_IMAGE_CAPTURE = 1; 

private void dispatchTakePictureIntent() { 
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
     startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); 
    } 
} 

Подробнее здесь: https://developer.android.com/training/camera/photobasics.html

0

Чтобы использовать встроенные приложения камеры в вашем телефоне вам нужны несколько вещей First:

  • Устройство должно иметь камеру
  • Ваше приложение должно иметь разрешение сфотографировать
  • Ваше приложение должно иметь разрешение, чтобы сохранить изображение (если вы намерены)

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

<uses-feature android:name="android.hardware.camera" android:required="true" /> 

Вам также нужно добавить в файл манифеста разрешения файла для записи/сохранения изображения, если это разрешение также позволяет вашему приложению иметь разрешение на чтение (этот экзамен не PLE не требуется)

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

Наконец помните, что вы просите Android, чтобы сделать работу для вас, следовательно, он будет возвращать результат для вас, который есть образ для этого нужно будет использовать startActivityForResult и передать код или думать о нем, как это идентификатор ID, что и ваше приложение и Android будет использовать сказать, 123 может быть любым целым числом, пока его не использовали в своей деятельности для любых других целей, чем для этой цели, принимая картину:

переменной Член

static final int REQUEST_TAKE_PHOTO = 123; 

private void takePicture() { 
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
     startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO); 
    } 

Добавьте это к кнопке или к изображению, но тон, так что одним щелчком будет вызываться метод takePicture

Заключительный шаг - это помнить, что будут отображаться данные изображения или результата, которые Android вернет, вам нужно будет принять и, как указано выше, код идентификатора REQUEST_TAKE_PHOTO = 123/requestCode.Существует метод, который вам нужно будет переопределить

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
      Bundle extras = data.getExtras(); 
      // Sample data cast to thumbnail 
      Bitmap imageBitmap = (Bitmap) extras.get("data"); 
      // Do whatever you want with the thumbnail such as setting it to image view 
      mImageView.setImageBitmap(imageBitmap); 
     } 
    } 

Source: Android Take Photos

+0

1. AFAIK каждый андроид устройство есть камера. 2. Никакого разрешения или функции, необходимой для открытия приложения камеры с использованием намерения. –

+0

@KetanAhir Привет, я думаю, вы пропустили ссылку «Источник», прикрепленную внизу. 1. «У любого устройства Android есть камера», не совсем так, Android - это ОС, и ОС используется практически во всех случаях: от телефонов, автомобилей, телевизоров, телевизионных коробок (онлайн-чанов) до индивидуальных карманных планшетов и т. Д. Предполагается, что вы сделали сделайте сборку для Android Phone и планшета, мы все-таки вернемся к «не совсем правдой». Существуют определенные устройства без камер, но есть доступ к игровому магазину, как объяснялось выше, поскольку простой Google Search «Android-камера без камеры» покажет вам мою мысль. –

+0

@KetanAhir «Нет разрешения или функции, необходимые для открытия приложения камеры с использованием намерения», так как Android справится с этим, исходный вопрос был «открыть камеру по умолчанию» обратно в мою первую точку, проверяя камеру в первую очередь. Лучшая и рекомендуемая практика при создании приложений для Android «если главная функция вашего приложения потребовала, чтобы устройство имело камеру», вам нужно добавить это разрешение, так как в магазине Google Play будет отображаться ваше приложение на устройствах, на которых есть камера. Хорошие старые методы программирования на Android :) –

0
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

startActivityForResult (cameraIntent, CAMERA_PIC_REQUEST);

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
if (requestCode == CAMERA_PIC_REQUEST && resultCode==RESULT_OK) { 
     Bitmap image = (Bitmap) data.getExtras().get("data"); 
     // do whatever you want with the image now} 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^