對於API> = 9:你可以使用Camera.getCameraInfo像這樣的東西:
int backCameraId = -1;
for(int i=0;i<Camera.getNumberOfCameras();i++){
CameraInfo cameraInfo = new CameraInfo();
Camera.getCameraInfo(i,cameraInfo);
if(cameraInfo.facing==CameraInfo.CAMERA_FACING_BACK) {
backCameraId = i;
break;
}
}
Log.d(TAG, "back camera exists ? "+(backCameraId>-1));
Log.d(TAG, "back camera id :"+backCameraId);
對於API> = 21,建議您使用Camera2 API:
String backCameraId = null;
CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
for(String cameraId:manager.getCameraIdList()){
CameraCharacteristics cameraCharacteristics = manager.getCameraCharacteristics(cameraId);
Integer facing = cameraCharacteristics.get(CameraCharacteristics.LENS_FACING);
if(facing==CameraMetadata.LENS_FACING_BACK) {
backCameraId = cameraId;
break;
}
}
Log.d(TAG, "back camera exists ? "+(backCameraId!=null));
Log.d(TAG, "back camera id :"+backCameraId);
這個答案應該適合你:http:// stack overflow.com/questions/14399333/detecting-lack-of-rear-camera – Alboz 2014-09-29 19:52:08
順便說一句,我可以使用'Camera.open(Camera.CameraInfo.CAMERA_FACING_BACK);'只是爲了打開BACK相機? – 2014-09-29 20:02:38
「我可以使用Camera.open(Camera.CameraInfo.CAMERA_FACING_BACK);只需打開BACK相機?」 - no,因爲open()的參數不是像CAMERA_FACING_BACK這樣的屬性。 – CommonsWare 2014-09-29 20:07:22