【问题标题】:Android camera2 API CameraManager.openCamera(...) problem while screen is locked屏幕锁定时Android camera2 API CameraManager.openCamera(...) 问题
【发布时间】:2021-03-31 10:15:22
【问题描述】:

请帮助我。我正在开发一个需要将视频流式传输到 PC 的移动应用程序。 其中一项要求是使用锁定的手机开始工作。但每次我尝试打开 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.access$1800(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

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

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

请帮帮我!

【问题讨论】:

  • 你的 targetSdkVersion 是什么。您可以尝试将其更改为较低的版本,例如 14。
  • 但如果您打算将应用发布到 Google Play,这不是解决方案!
  • 是的,我知道,但我不需要发布。无论如何,谢谢你的帮助!

标签: java android exception android-camera2


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多