Camera.open()返回null

当我调用mCamera = Camera.open()它返回null,可能是什么导致了这个? 我的设备是Nexus 7。

我已经在AndroidManifest.xml设置了权限:

  

  • 从video文件创build缩略图返回空位图
  • 在android中使用phonegap时,从图库中获取的图像以不同的方向显示
  • Android Nexus 7 Jelly Bean:s​​tartPreview / takePicture调用getCameraStereoModelogging错误
  • 拍照而无需预览Android
  • Android相机预览callback和录像机录制video
  • 在相机预览中使用相机闪光灯需要什么许可?
  • 带相机意图的照片,并在imageView或textView中显示?
  • 使SurfaceView大于屏幕(将相机预览适合大于显示器的SurfaceView)
  • 弄清楚了,

    你需要调用Camera.open(0)

    这只能在NEXUS 7设备上运行,因为它只有一个摄像头,因此仅在定位该设备时才有用。

    对于那些在Android 6.0+上测试应用程序的用户,请确保已实现运行时权限 。 因为AndroidManifest文件中的简单权限是不够的。

    我按照以下步骤解决了这个问题。

    1. 打开“AVD Manager”并选择您正在使用的虚拟设备

    2. 单击“编辑”按钮 单击编辑按钮

    3. 在“硬件”部分中,选择“新建”并添加“配置面向后的摄像头”,然后单击“确定”。

    4. 在条目旁边的下拉列表中,选择“webcam0”或与您要使用的相机对应的那个 选择要使用的相机

    5. 停止AVD并重新启动。