检测其他应用何时尝试使用相机

时间:2016-07-21 14:37:06

标签: android android-camera

我们的应用程序作为后台服务运行,不断从正面相机获取图像,然后处理图像。但是,当用户尝试打开另一个使用相机的应用程序时,会发生两件事:新应用程序崩溃,我们的应用程序崩溃,或者我们的崩溃和新的崩溃都可以访问相机。

现在,如果我们的应用程序失去了对相机的控制权,那么我们可以捕获一个异常,然后我们可以开始尝试访问它,直到我们获得访问权限并且事情恢复正常。

问题在于其他应用程序因我们的而崩溃。有没有办法检测到这一点,所以我们可以暂停我们的应用程序,直到我们可以再次访问相机?

2 个答案:

答案 0 :(得分:0)

这是因为相机是独家资源。

我建议你阅读Camera documentation,其中写着:

  

如果您的应用程序未正确释放相机,则全部   随后尝试访问相机,包括您自己的相机   应用程序,将失败并可能导致您或其他应用程序   关闭。

答案 1 :(得分:0)

不幸的是,Camera API或Android SDK通常不提供此类信息。好消息是,越来越多的新设备可以让您独立打开前置摄像头和后置摄像头。这样可以减少发生冲突的可能性。

根据您的描述,可能会使与您竞争的应用程序因访问摄像机而崩溃,这是合法的,但是,开个玩笑,您对此无能为力。他们没有正确检查RuntimeException是他们的错。

Android最近加强了应用程序之间的隔离,因此,除非您的应用程序具有系统特权,否则可能无法跟踪启动了哪些应用程序(请参见 App to monitor other apps on android )。