Так я использую Camera2 API, и когда я открываю камеру:Camera2 андроид Камара обратного вызова камеры устройство является нулевым
private void StartUpCam()
{
CameraManager CM = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
if(camId.compareTo("")!=0)
{
//Log.e("camera", "started");
try{
Log.e("Start up Cam and camId:", camId);
CM.openCamera(camId, CDcallback, null);
}
catch(CameraAccessException e)
{
Log.e("come with me", "if you want to live");
e.printStackTrace();
}
}
}
Как вы можете видеть, что я убедиться, что параметры, необходимые, чтобы открыть камеру все проверить и они это делают. В любом случае, когда обратный вызов ударяется:
private CameraDevice CD;
private CameraDevice.StateCallback CDcallback
= new CameraDevice.StateCallback() {
@Override
public void onOpened(CameraDevice camera) {
//Log.e("onOpened", "here");
CD = camera;
if(CD == null)
Log.e("onOpened", "CD is null");
createCamPreviewSession();
}
@Override
public void onError(CameraDevice camera, int error) {
camera.close();
CD = null;
}
@Override
public void onDisconnected(CameraDevice camera) {
camera.close();
CD = null;
}
};
Устройство камеры из метода onOpened всегда равно null. Я понятия не имею, почему это происходит. Есть идеи?