Эмулятор камеры - PullRequest
       50

Эмулятор камеры

0 голосов
/ 28 ноября 2018

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

Я решил так:

Integer REQUEST_CAMERA = 1;
[...]
button_scatta.setOnClickListener(new View.OnClickListener() {

  public void onClick(View v) {

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(intent, REQUEST_CAMERA);

  }

});

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == Activity.RESULT_OK){

        if (requestCode == REQUEST_CAMERA) {

            Bundle bundle = data.getExtras();
            final Bitmap bmp = (Bitmap) bundle.get("data");
            ivImage.setImageBitmap(bmp);

        }[...]
    }
}

Манифест имеетследующие разрешения на использование:

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

У меня была эта ошибка безопасности: java.lang.SecurityException: Отказ в разрешении: запуск Intent {act = android.media.action.IMAGE_CAPTURE cmp = com.android.camera2 /com.android.camera.CaptureActivity} из ProcessRecord {6d2a42a 7516: com.example.punta.geopost / u0a85} (pid = 7516, uid = 10085) с аннулированным разрешением android.permission.CAMERA

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Пожалуйста, предоставьте разрешение времени доступа для доступа к камере, потому что согласно https://developer.android.com вы должны установить разрешение времени выполнения на или после того, как устройство поддерживает зефир.

0 голосов
/ 28 ноября 2018

Добавить следующее разрешение в файл манифеста

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

Кроме того, вам необходимо реализовать разрешение времени выполнения, см. страница разработчика , пример 1 и пример 2

...