【问题标题】:android - how to get a callback when camera is either opened or closedandroid - 打开或关闭相机时如何获取回调
【发布时间】:2016-10-09 03:16:10
【问题描述】:

我的一个应用程序在锁定屏幕上显示信息。它是锁屏上的一层。我需要知道相机何时打开,以便我可以隐藏它。就像 facebook messenger 一样,它的头是浮动的。虽然我在锁定屏幕上有浮动想象。我只需要回电即可知道应用程序何时打开了相机,这样我就可以隐藏我的想象并在相机关闭时再次显示它。

所以我发现了这个代码:

public boolean isCameraUsebyApp() {
Camera camera = null;
try {
    camera = Camera.open();
} catch (RuntimeException e) {
    return true;
} finally {
    if (camera != null) camera.release();
}
return false;

}

问题是这不是实时的。我必须调用它。我宁愿在相机打开时得到一个系统回调,这样我就可以隐藏可能已经显示的东西。

【问题讨论】:

  • 我忘记了您在CameraManager 上提到的回调(在我现在已删除的答案中)。请注意,这仅适用于 Camera2 API,因此仅适用于 API 级别 21+。此外,它仅在您运行进程时才有效。而且,坦率地说,我对这个回调的存在并不满意。

标签: android camera


【解决方案1】:

没有用于打开/关闭相机事件的系统广播。但是,您可以使用 android UsageStatsManager 在后台服务中检查前台应用程序并在打开相机应用程序时执行操作,这是大多数 AppLock 应用程序检测到的方式。

【讨论】:

  • 它怎么知道什么是相机应用?我必须提供包名吗?
  • 您可以创建一个相机图像选择器意图并通过解析它来获取包名称。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-07
  • 1970-01-01
  • 2020-06-04
  • 1970-01-01
  • 1970-01-01
  • 2011-08-18
相关资源
最近更新 更多