Camera.open()返回null

Che*_*tah 22 android android-camera

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

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

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

Che*_*tah 27

弄清楚了,

你需要打电话Camera.open(0).

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

  • 这是错误的答案.首先,"0"是一个硬编码的数字.其次,正如@Praveen所提到的,你应该同时使用[getNumberOfCameras()](http://developer.android.com/reference/android/hardware/Camera.html#getNumberOfCameras())和[open(int)](http ://developer.android.com/reference/android/hardware/Camera.html#open(INT)). (5认同)
  • 另请阅读[this](http://developer.android.com/reference/android/hardware/Camera.html#open%28int%29) (2认同)
  • 我知道.但是`0`是硬编码的值.我会避免使用它.你可以说我的意见是错的,这取决于你. (2认同)
  • LaiVung/user1521536是正确的.不要硬编码摄像机ID值.这个答案是一个破碎的快捷方式,在一个实例中适用于一个人. (2认同)

小智 5

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