【问题标题】:How to find the application that is using camera?如何找到正在使用相机的应用程序?
【发布时间】:2018-07-14 00:15:07
【问题描述】:

我正在做一个 Android 应用程序,它会发现应用程序是否在后台使用相机。

感谢this,我可以找到应用程序是否正在使用您 Android 手机中的相机,所以我的代码如下所示:

CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
@Override
           public void onCameraAvailable(@NonNull String cameraId) {
               super.onCameraAvailable(cameraId);
               //Camera is not used
           }

           @Override
           public void onCameraUnavailable(@NonNull String cameraId) {
               super.onCameraUnavailable(cameraId);
               //Camera is used
           }
       }, new Handler());

但现在我发现了一个问题:如何找到正在使用相机的应用(“应用”是指应用的包名称)?我试过使用 manager.[something],希望 Android Studio 中的自动提示可以帮助我,但没有成功。

你能帮帮我吗?

如果您需要更多信息,尽管问我。

提前致谢,

F.

【问题讨论】:

  • 据我所知,我认为目前还不能以编程方式获取相机的所有者。
  • @AmitK.Saha 不改代码?
  • 在安卓操作系统中不可能。

标签: java android service camera handler


【解决方案1】:

这是不可能的。

两种解决方案是: (1)修改Android Source,在CameraManager中增加新方法(以及其他组件中的其他方法) (2) 使用 Xposed 框架(需要 Root 权限)并创建一个模块来侦听“openCamera()”事件并保存调用者 PackageName 以供以后想知道谁是最后一个调用者时使用。

【讨论】:

  • 改什么代码?操作系统?当然!但是如果你不想改变Android Source,那么你就无法实现你想要的。
猜你喜欢
  • 2013-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多