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

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

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

  1. E/Camera ( 3154): Error 2

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

vxqlmq5t

vxqlmq5t1#

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

  1. @override
  2. void didChangeAppLifecycleState(AppLifecycleState state) {
  3. // App state changed before we got the chance to initialize.
  4. if (controller == null || !controller.value.isInitialized) {
  5. return;
  6. }
  7. if (state == AppLifecycleState.inactive) {
  8. controller?.dispose();
  9. } else if (state == AppLifecycleState.resumed) {
  10. if (controller != null) {
  11. onNewCameraSelected(controller.description); // Here we reinitialize the cameraController
  12. }
  13. }
  14. }

这里是link到相机的文档。

展开查看全部

相关问题