Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法检查应用程序是否正在通过服务使用摄像头_Java_Android_Service_Camera - Fatal编程技术网

Java 无法检查应用程序是否正在通过服务使用摄像头

Java 无法检查应用程序是否正在通过服务使用摄像头,java,android,service,camera,Java,Android,Service,Camera,我正在尝试检查Android中是否有应用程序正在访问摄像头(即使是在后台),我正在使用一项服务来实现这一点 这是我的服务代码: public class BackgroundService extends Service { @Nullable Context context; public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { Toast.makeTe

我正在尝试检查Android中是否有应用程序正在访问摄像头(即使是在后台),我正在使用一项服务来实现这一点

这是我的服务代码:

public class BackgroundService extends Service {
@Nullable
Context context;
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public void onCreate() {
    Toast.makeText(this, "Service started!", Toast.LENGTH_LONG).show();
    if (isCameraUsedbyApp()){
    Toast.makeText(this, "Camera is used!", Toast.LENGTH_LONG).show();
    }
}

@Override
public void onDestroy() {
    Toast.makeText(this, "Service stopped!", Toast.LENGTH_LONG).show();
}

public boolean isCameraUsedbyApp() {
        Camera camera = null;
        try {
            camera = Camera.open();
        } catch (RuntimeException e) {
            return true;
        } finally {
            if (camera != null) camera.release();
        }
        return false;
    }
}
以下是我对这些问题的回答:

但没有成功,事实上,该服务总是说相机被使用了,即使它没有被使用

此外,我正在尝试获取使用camera的应用程序(如果使用的话),但在Android开发者文档()中找不到相关参考

你能帮帮我吗?如果你需要更多的信息,你只需要问一下

问候,


F.

您可能想看一看正在捕获的
运行时异常
,看看它是怎么说的。例如,您可能因为缺少运行时权限而获得
SecurityException
。@commonware很遗憾,我没有获得运行时异常,因此我不知道该怎么办。事实上,该应用程序没有返回任何错误。“我没有遇到运行时异常”——你的问题是“服务总是说使用了摄像头”。这表示
isCameraUsedbyApp()
正在返回
true
。它这样做的唯一原因是,如果您在logcat中捕捉到
运行时异常
@commonware ok,我不会得到任何运行时异常,但是如果我尝试手动获取它们(使用try&catch),我可以看到运行时异常,没有任何原因。你能帮帮我吗?@commonware更新:在应用程序再次启动后,logcat告诉我“由”null“引起”