Я пишу приложение, для которого нужны снимки, сделанные камерой. Проблема возникает, когда я пытаюсь сделать реальный снимок. Вот код, который беспокоит меня:
final ShutterCallback shutterCallback = new ShutterCallback() {
@Override
public void onShutter() {
Log.d(TAG, "onShutter");
}
};
final PictureCallback callback = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Log.d(TAG, "onPictureTaken - jpeg");
try {
//async task for storing the photo
new SavePhotoTask(CameraView.this.ctx, data).execute();
} catch (final SavePhotoException e) {
//some exceptionhandling
}
}
};
this.camera = Camera.open();
this.camera.setPreviewDisplay(surfaceHolder);
final Camera.Parameters parameters = findBestParameters(w, h);
this.camera.setParameters(parameters);
this.camera.startPreview();
Log.d(TAG, "takePicture now!");
this.camera.takePicture(shutterCallback, null, callback);
На эмуляторе вроде бы работает но на моем телефоне (Motorola Defy - android 2.1).
Актуальная проблема: на телефоне никогда не происходит обратный вызов изображения «onPictureTaken» никогда не вызывается. Shuttercallback выполняется, а другой - нет (и я попытался использовать raw вместо jpeg, тоже самое).
Кто-нибудь знает эту проблему? Я просто не вижу, в чем разница сейчас с эмулятором. Я ценю вашу помощь.