当我调用 mCamera = Camera.open()
时返回 null,这可能是什么原因?我的设备是 Nexus 7。
我已经在我的 AndroidManifest.xml
中设置了权限:
<uses-permission android:name="android.permission.CAMERA" />
当我调用 mCamera = Camera.open()
时返回 null,这可能是什么原因?我的设备是 Nexus 7。
我已经在我的 AndroidManifest.xml
中设置了权限:
<uses-permission android:name="android.permission.CAMERA" />
明白了,
你需要调用Camera.open(0)
。
这仅在Nexus 7设备上有效和可行,因为它只有一个相机,所以仅在仅针对该设备时有用。
0
是硬编码的值。我会避免使用它。你可以认为我的观点是错误的,这取决于你。 - user1521536对于那些在 Android 6.0+ 上测试应用的人,请确保您已经实施了运行时权限,因为仅在您的 AndroidManifest 文件中添加简单的权限是不够的。
我通过以下步骤解决了这个问题。
打开“AVD管理器”并选择您正在使用的虚拟设备
点击“编辑”按钮
在“硬件”部分,选择“新建”并添加“配置后置摄像头”,然后单击“确定”。
在条目旁边的下拉菜单中,选择“webcam0”或与您想要使用的相机对应的相机
停止AVD并重新启动。
camera = Camera.open();
返回 null。 - CheetahCreates a new Camera object to access the first back-facing camera on the device. If the device does not have a back-facing camera, this returns null.
...Nexus 7 没有后置摄像头,只有前置摄像头。 - Cheetah