java.lang.RuntimeException:无法连接到摄像头服务

get*_*han 9 camera android

我尝试制作应用程序,而不是可以打开和关闭相机闪光灯.我有的代码看起来像这样:

Camera flash;
Camera.Parameters params;

flash = Camera.open();
params = flash.getParameters();

params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);        
flash.setParameters(params);
Run Code Online (Sandbox Code Playgroud)

并在清单xml中:

<permission android:name="android.permission.FLASHLIGHT"  

android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
          android:protectionLevel="normal" />

<permission android:name="android.permission.CAMERA"> </permission>
Run Code Online (Sandbox Code Playgroud)

每次我运行代码时,应用程序崩溃在"flash = Camera.open();" 有这个错误:

java.lang.RuntimeException:无法连接到摄像头服务

我究竟做错了什么?

Mic*_*ang 34

要访问设备摄像头,您必须在Android Manifest中声明CAMERA权限,如下所示,

 <uses-permission android:name="android.permission.CAMERA" />
 <uses-feature android:name="android.hardware.camera" />
Run Code Online (Sandbox Code Playgroud)

  • 这并非完全正确,您不需要使用uses-feature标签来访问摄像头:"声明的<uses-feature>元素仅供参考,这意味着Android系统本身在安装之前不检查设备上的匹配功能支持但是,其他服务(例如Google Play)或应用程序可能会检查您的应用程序的<uses-feature>声明,作为处理或与您的应用程序交互的一部分."http://developer.android.com/guide/topics/清单/使用特征,element.html (9认同)

bit*_*bhi 7

您可能忘记了致电发布 onDestroy

例如:

@Override
protected void onDestroy() {
    if (mCamera != null) {
        mCamera.release();
    }
    super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)