Java 无法检查应用程序是否正在通过服务使用摄像头
我正在尝试检查Android中是否有应用程序正在访问摄像头(即使是在后台),我正在使用一项服务来实现这一点 这是我的服务代码: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
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;
}
}
以下是我对这些问题的回答:
F.您可能想看一看正在捕获的
运行时异常
,看看它是怎么说的。例如,您可能因为缺少运行时权限而获得SecurityException
。@commonware很遗憾,我没有获得运行时异常,因此我不知道该怎么办。事实上,该应用程序没有返回任何错误。“我没有遇到运行时异常”——你的问题是“服务总是说使用了摄像头”。这表示isCameraUsedbyApp()
正在返回true
。它这样做的唯一原因是,如果您在logcat中捕捉到运行时异常
@commonware ok,我不会得到任何运行时异常,但是如果我尝试手动获取它们(使用try&catch),我可以看到运行时异常,没有任何原因。你能帮帮我吗?@commonware更新:在应用程序再次启动后,logcat告诉我“由”null“引起”