Android我的后台摄像头应用程序在其他应用程序使用摄像头时丢失信号

xzlaal3s  于 2022-11-03  发布在  Android
关注(0)|答案(1)|浏览(199)

多么棘手的问题,你可能会想要更多的信息。
我目前正在开发一个在后台使用摄像头的应用程序。这是道德规范,用户已经被警告过了,所以不用担心。
我使用的是com.google.android.gms.vision中的CameraSource
因此,用户可以自由地启动其他应用程序,做任何他想做的事情。甚至启动其他访问相机的应用程序!这里的问题来了。
我使用Flutter作为框架。
当用户打开使用摄像头的其他应用程序时,我的应用程序丢失信号,Flutter trace仅打印:

E/Camera  ( 3154): Error 2

没有其他..没有例外,没有痕迹,没有什么知道它从这里来,为什么或如何处理它!
如果你知道如何重新启动相机,直到它再次可用,它可以节省我的日子。

vxqlmq5t

vxqlmq5t1#

当应用程序停止时(转到后台或其他应用程序在应用程序顶部打开),您应该调用cameraController.dispose()
以下是官方相机文档中的示例,说明他们如何处理相机的应用程序生命周期。

@override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    // App state changed before we got the chance to initialize.
    if (controller == null || !controller.value.isInitialized) {
      return;
    }
    if (state == AppLifecycleState.inactive) {
      controller?.dispose();
    } else if (state == AppLifecycleState.resumed) {
      if (controller != null) {
        onNewCameraSelected(controller.description); // Here we reinitialize the cameraController
      }
    }
  }

这里是link到相机的文档。

相关问题