Camera の setPreviewCallbackWithBuffer() を使ったときの問題
Froyo(Android 2.2)から追加されたCamera#setPreviewCallbackWithBuffer() を使ったときに、 takePicture()しても onPictureTaken() が呼ばれない現象があります。どうやらsetPreviewCallbackWithBuffer() するまえに addPreviewCallbackBuffer() してバッファを確保するのですが、そちらのバッファを使うようになっているようです。なので単純に setPreviewCallback() をsetPreviewCallbackWithBuffer() へ置き換えするだけでは使えません。
解決方法としては、takePicture()を呼ぶ前に
setPreviewCallback(null);
を入れてやるとよいようです。
詳細は以下のMLのスレッドを参照してみてください。
先週に社内ハッカソンがあったのですが、この問題に大いにはまりまくって時間がなくなって非常に悔しい思いをしました…。忘れないためにメモ。