Из документации:
Создание сеанса является дорогостоящей операцией и может занимать несколько сотен миллисекунд, поскольку требует настройки внутренних конвейеров устройства камеры и выделения буферов памяти для отправки изображений желаемым целям. Поэтому настройка выполняется асинхронно, и CameraDevice # createCaptureSession и CameraDevice # createReprocessableCaptureSession отправит готовый к использованию CameraCaptureSession предоставленному обратному вызову CameraCaptureSession.StateCallback # onConfigured.
Однако я получаю ANR, вызванное createCaptureSession ():
AppNotResponding : Application not responsive since: Fri Jan 17 17:19:26 GMT+01:00 2020
at android.os.BinderProxy.transactNative(BinderProxy.java)
at android.os.BinderProxy.transact(BinderProxy.java:510)
at android.hardware.camera2.ICameraDeviceUser$Stub$Proxy.endConfigure(ICameraDeviceUser.java:719)
at android.hardware.camera2.impl.ICameraDeviceUserWrapper.endConfigure(ICameraDeviceUserWrapper.java:114)
at android.hardware.camera2.impl.CameraDeviceImpl.configureStreamsChecked(CameraDeviceImpl.java:476)
at android.hardware.camera2.impl.CameraDeviceImpl.createCaptureSessionInternal(CameraDeviceImpl.java:664)
at android.hardware.camera2.impl.CameraDeviceImpl.createCaptureSession(CameraDeviceImpl.java:512)
Я не вижу в примерах кода, что вызов createCaptureSession () выполняется в фоновом потоке. Обычно передается обработчик, поэтому в фоновом потоке будут выполняться только обратные вызовы?