ANDROID Вызывается java .lang.SecurityException: validateClientPermissionsLocked: 1102: вызывающим абонентам от пользователя устройства 0 в настоящее время не разрешено подключаться к камере "1"
Разрешение камеры предоставлено.
Он запущен FOREGROUND SERVICE.
Работает на большинстве устройств, но мало устройств Android 9, Huawei, Motorola и Xiaomi, которые не работают.
Вкл. эта ссылка: https://android.googlesource.com/platform/frameworks/av/+/refs/heads/master/services/camera/libcameraservice/CameraService.cpp
В строке 1031 поясняется: «Разрешить только клиентам, которые используются текущим пользователем устройства переднего плана».
Означает ли это, что он не может быть доступным для службы переднего плана?
Код в Kotlin (cra sh происходит в manager.openCamera):
try {
val pickedCamera = getCamera(manager) ?: return
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED
) {
return
}
manager.openCamera(pickedCamera, cameraStateCallback, null)
imageReader =
ImageReader.newInstance(1920, 1088, ImageFormat.JPEG, 1 /* images buffered */)
imageReader.setOnImageAvailableListener(onImageAvailableListener, null)
} catch (e: CameraAccessException) {
}