检测另一个应用程序何时尝试使用相机

问题描述 投票:4回答:2

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

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

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

android android-camera
2个回答
0
投票

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

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

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


0
投票

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

根据您的描述,将与您的应用程序竞争的应用程序与访问摄像机相比可能是合法的,但是,除了笑话之外,您无能为力。他们没有正确检查RuntimeException是他们的错。

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

© www.soinside.com 2019 - 2024. All rights reserved.