在onTopResumedActivityChanged中打开相机时出现问题

问题描述

我有一个使用相机的Android应用。到目前为止,我是在活动的onResume回调中打开相机,然后在onPause中释放它。在Android 10之前,此方法运行良好。

从Android 10开始,RESUMED状态下可能会有多个活动,因此,我尝试在新的onTopResumedActivityChanged回调中打开/释放摄像头。 documentation说:

此回调应代替onResume()来使用,以表明该活动可以尝试打开专用访问设备(例如camera)。

我正在使用另一个相机应用程序在分屏设置下对此进行测试。有时,当我点击我的应用程序时,它将成功打开相机;有时它会因运行时异常而失败,如下所示:

W/CameraBase: An error occurred while connecting to camera 0: Status(-8,EX_SERVICE_SPECIFIC): '7: connectHelper:1500: Higher-priority client using camera,ID "0" currently unavailable'
E/CameraPreview: Cannot open camera
    java.lang.RuntimeException: Fail to connect to camera service
        at android.hardware.Camera.<init>(Camera.java:630)
        at android.hardware.Camera.open(Camera.java:455)
        [...]

为什么会这样?从理论上讲,如果在将onTopResumedActivityChanged设置为true的情况下调用isTopResumedActivity,则我的活动已经是恢复的活动最高,并且应该是摄像机的最高优先级客户端。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)