Почему не работает PreviewView Android, Kotlin?
Почему при запуске в PreviewView чёрный экран?
Список разрешений:
<uses-feature android:name="android.hardware.camera" android:required="true"/>
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Scan">
<androidx.camera.view.PreviewView
android:id="@+id/CameraView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
package com.example.app
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.camera.core.*
import androidx.camera.core.CameraSelector.LENS_FACING_BACK
import androidx.camera.lifecycle.ProcessCameraProvider
import androidx.camera.view.PreviewView
import androidx.core.content.ContextCompat
import androidx.lifecycle.LifecycleOwner
class Scan : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState);
setContentView(R.layout.scan);
val CameraView = findViewById<PreviewView>(R.id.CameraView);
val cameraProvider = ProcessCameraProvider.getInstance(this);
cameraProvider.addListener({
val cameraProviderGet = cameraProvider.get();
val preview = Preview.Builder().build();
val cameraSelector = CameraSelector.Builder().requireLensFacing(LENS_FACING_BACK).build();
val imageCapture = ImageCapture.Builder().build();
preview.setSurfaceProvider(CameraView.surfaceProvider);
cameraProviderGet.bindToLifecycle(this as LifecycleOwner, cameraSelector, preview, imageCapture);
}, ContextCompat.getMainExecutor(this));
}
}
Ответы (1 шт):
Автор решения: Sarnitskiy Ivan
→ Ссылка
Нужно было включить разрешение у приложения. В настройках приложения, так как не открывалось оно запроса разрешения.