public boolean openCamera() {
    Log.i(TAG, "openCamera");
    releaseCamera();
    mCamera = Camera.open();
    if (mCamera == null) {
        Log.e(TAG, "Can't open camera!");
        return false;
    }
    mCamera.setPreviewCallbackWithBuffer(new PreviewCallback() {
        public void onPreviewFrame(byte[] data, Camera camera) {
            synchronized (View.this) {
                System.arraycopy(data, 0, mFrame[frameIndex], 0,
                        data.length);
                View.this.notify();
            }
            camera.addCallbackBuffer(mBuffer);
            if (frameIndex == 1) {
                bufferIsSet = true;
            }
            frameIndex ^= 1;
        }
    });
    return true;
}
以上がカメラの開き方です。(その他のコードはhttps://github.com/sungjkang/OpticalFlow/blob/master/src/com/wais/opticalflow/View.javaにあります)
エミュレーターを使用しているラップトップでは問題なく動作しますが、Nexus 4 ではまったく動作しません。掘り下げた後、電話を使用しているときに onPreviewFrame に入っていないことに気付きましたが、その方法は私のエミュレータで呼び出されました。
ここで何が起こっているか知っている人はいますか?