我正在写一个需要用相机拍照的应用程序。当我试图拍一张真实的照片时,问题就出现了。以下是困扰我的代码:
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);
在模拟器上,它似乎是可行的,但在我的手机上(摩托罗拉Defy-android 2.1)。
实际问题是:在电话中,图片回调从未发生“onPictureTaken”从未被调用。Shuttercallback被执行了,但另一个没有(我试过用raw而不是jpeg,也是一样)。
有人知道这个问题吗?我只是不知道模拟器现在的区别在哪里。我感谢你的帮助。