Android Camera v1 API lock() 似乎不起作用

Android Camera v1 API lock() does not appear to work

我正在编写一个 Android 应用程序,它使用 v1 相机 API 来流式传输预览帧。即使它不在前台,它也需要能够获取预览帧。到目前为止,我已经让一切正常工作。 (例如,如果导航到主屏幕,我的应用程序仍会收到预览帧)。但是,camera.lock() 似乎无法正常工作,因为如果我打开另一个使用相机的应用程序(例如默认相机应用程序),那么我的应用程序将停止接收预览帧,而相机应用程序会成功打开相机。根据 documentation 如果我锁定了相机,其他进程应该无法使用它。有趣的是,当我的应用程序在后台 运行 时,通知栏上的手电筒按钮变灰了。似乎手电筒代码被正确锁定,但不是默认的相机应用程序。有人对此有一些见解吗?

camera.lock API 专为应用程序和 MediaRecorder 都可以访问 Camera 对象的视频录制用例而设计。

对于您指出的场景,Android 相机框架将始终允许前台应用程序成功打开相机(并强制关闭不再位于前台的其他应用程序的相机对象)。这是为了避免一个(编写不当或恶意的)应用程序阻止所有其他应用程序访问相机。