当前位置: 首页 > 知识库问答 >
问题:

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

史烈
2023-03-14

我们的应用程序作为后台服务运行,不断从前置摄像头获取图像,然后处理图像。然而,当用户尝试打开另一个使用摄像头的应用程序时,会发生两件事:要么新应用程序崩溃,我们的应用程序继续,要么我们崩溃,新应用程序访问摄像头。

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

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

共有2个答案

农诚
2023-03-14

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

根据您的描述,让与您竞争摄像头访问权限的应用程序崩溃可能是合理的,但是,撇开玩笑不谈,您对此无能为力。他们没有正确检查RuntimeException,这是他们的错。

Android最近加强了应用程序之间的隔离,因此可能无法跟踪哪些应用程序已启动(请参阅应用程序以监控Android上的其他应用程序),除非您的应用程序具有系统权限。

文建业
2023-03-14

发生这种情况是因为相机是一种独家资源。

我建议您阅读相机文档,其中说明:

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

 类似资料:
  • 主要活动 碎片 这是一个简单对话框的代码。 这里有一个我从中学习的链接。如果我只需通过调用按钮创建对话框,它就可以完全正常工作。

  • 使用 Adobe Bridge 和 After Effects 使用 Adobe Bridge 可运行动画预设;运行跨产品工作流程自动化脚本;查看和管理文件和文件夹;通过将关键字、标签和等级分配给您的文件来组织这些文件;搜索文件和文件夹;以及查看、编辑和添加元数据。 要从 After Effects 打开 Adobe Bridge,请选择“文件”>“在 Bridge 中浏览”。 要在 Adobe

  • 当我启动音频/屏幕录像机并打开我的录音机应用程序并启动用于录制音频的服务时,我遇到错误该应用程序崩溃。 我不知道为什么我会面临这个问题。 来自logcat的错误跟踪 录制服务.java 录音活动 这就是我尝试在应用程序中开始录制时发生的情况 链接如下。 显示我的应用程序崩溃

  • 如果被其他应用程序调用,我的自定义相机应用程序会崩溃。 例如,我的相机是由我的音轨调用的。如果你按下我音轨的相机图标,它会弹出并让用户选择要使用的相机。我试过使用我的相机,但它崩溃了。但是如果我从应用程序菜单中单击相机,我的相机就可以正常工作。 AndroidManifest.xml 我的方法: 日志猫: 相机活动: 这是我的启动器,当我的应用程序启动时首先调用它: 我主要活动的一部分 @Over

  • 我正在开发一个将在Kiosk模式下运行的应用程序。在这个应用程序中,如果用户在5分钟内没有在应用程序中做任何事情,应用程序将显示一个屏幕保护程序,这是应用程序的徽标。 我的问题是,如何在5分钟内检测到空闲代码?

  • 当我单击“开始”按钮时,emulator不工作。我能做什么?请帮帮我!这是错误: 我能做什么?请帮帮我! 不可预期的顶级例外:ain.run运行时异常:C:\用户\维森\\Android\Probeta\app\build\中介\类\调试:文件未找到ain.java:246FileUcom.android.dx.command.dexer.文件(FileUain.main)ain.java:215