だから私はcamera2 APIを使用していて、カメラを開くと:
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 メソッドの Camera Device は常に null です。なぜこれが起こっているのか分かりません。何か案は?