如何找到正在使用相机的应用程序?

时间:2018-07-13 15:45:13

标签: java android service camera handler

我正在做一个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。

1 个答案:

答案 0 :(得分:0)

不可能是您要的。

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