gpt4 book ai didi

Android:如何判断相机何时被激活

转载 作者:太空狗 更新时间:2023-10-29 12:50:51 26 4
gpt4 key购买 nike

我正在编写一个 Android 应用程序,用户可以在后台运行该应用程序以检测相机何时打开(由用户或其他应用程序打开)。即使在其他应用程序(如 facebook、instagram)不使用默认的 android 相机应用程序的情况下,这也应该检测到。

我一直在搜索,但没有看到每当相机被激活时发送的任何广播。到目前为止,我已经看到如果相机已被另一个应用程序使用,则 Camera.open() 会抛出 RuntimeException。所以一种方法是不断轮询 Camera.open(),但它确实很昂贵。有更好的选择吗?

谢谢

编辑:抱歉,我没有说清楚,但我想做的是创建某种相机使用日志:打开/关闭的时间、持续时间等。

最佳答案

内部发生的事情是 Camera API 与 CameraService 对话,CameraService 有 mBusy 变量来跟踪相机是否忙。并且没有 API 可以让这个 mBusy 标志停止服务(不调用 open())

我可能是错的,因为我只是扫了一眼。

您可以下载 Android 源代码 (http://source.android.com/) 并自行仔细查看。

您可能感兴趣的文件是:

\frameworks\base\services\camera\libcameraservice\CameraService.cpp

\frameworks\base\libs\camera\Camera.cpp

\frameworks\base\core\java\android\hardware\Camera.java

\frameworks\base\core\jni\android_hardware_Camera.cpp

另一个想法。尝试查看日志。在这种情况下,如果没有关闭相机服务/API 的日志,您可以解析日志以检查相机何时打开或关闭。但是,它可能不适用于 OS 4.1,因为 Google 限制了对系统日志的读取。

关于Android:如何判断相机何时被激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12219595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com