Android camera2 API CameraManager.openCamera(...) 屏幕锁定时出现问题

Android camera2 API CameraManager.openCamera(...) problem while screen is locked

请帮助我。我正在开发一个需要将视频流式传输到 PC 的移动应用程序。 其中一项要求是使用锁定的 phone 开始工作。但是每次我尝试打开 CameraDevice 时都会导致异常。

android.hardware.camera2.CameraAccessException: CAMERA_DISABLED (1): connectHelper:1735: Camera "0" disabled by policy
        at android.hardware.camera2.CameraManager.throwAsPublicException(CameraManager.java:1009)
        at android.hardware.camera2.CameraManager.openCameraDeviceUserAsync(CameraManager.java:544)
        at android.hardware.camera2.CameraManager.openCameraForUid(CameraManager.java:725)
        at android.hardware.camera2.CameraManager.openCamera(CameraManager.java:693)
        at com.pv.imageview.hardware.CameraAccess.startRecord(CameraAccess.java:293)
        at com.pv.imageview.LoopService.onStartCommand(LoopService.java:52)
        at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4320)
        at android.app.ActivityThread.access00(ActivityThread.java:237)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1951)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7660)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
W/System.err: Caused by: android.os.ServiceSpecificException: connectHelper:1735: Camera "0" disabled by policy (code 6)
        at android.os.Parcel.createExceptionOrNull(Parcel.java:2387)
        at android.os.Parcel.createException(Parcel.java:2357)
        at android.os.Parcel.readException(Parcel.java:2340)
        at android.os.Parcel.readException(Parcel.java:2282)
        at android.hardware.ICameraService$Stub$Proxy.connectDevice(ICameraService.java:634)
        at android.hardware.camera2.CameraManager.openCameraDeviceUserAsync(CameraManager.java:511)
        ... 13 more

我确定您可以在 phone 锁定时打开相机,因为我有可以执行此操作的 APK。而且不需要使用管理员。

我已经尝试启动前台服务,因为它的优先级更高,我认为它有帮助,但没有。 如果 phone 已解锁 - 工作正常。 在 Pixel 5 和 HUAWEI p40 pro 上测试。

请帮帮我!

因此,正如 Muhammad Babar 向我建议的那样,我可以降低目标 API 水平,这会有所帮助。 但我刚刚找到了问题的正确解决方案,如果您有兴趣——请阅读此文档:

https://developer.android.com/guide/components/foreground-services