我有一个类(CameraView)用于在我的应用程序中拍照。
在LG Nexus 4(Android 4.2.1)上运行时,onPictureTaken没有回调。下面是我如何尝试实现这一点的一个基本示例(我已经意识到所有初始化的东西,但它确实发生了)。此代码在Galaxy Nexus(Android 4.2.1)和Galaxy S3(Android 4.0.3)上工作并拍照,但在Nexus 4上没有。我已经测试了回调onShutter()以及所有onPictureTaken(), raw,postview和jpeg但在Nexus 4上运行时都不会调用它们。
修改
在我的第一个活动中,我有一个启动相机的按钮。
mImage = (Button) findViewById(R.id.takeimg);
mImage.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
startActivityForResult(new Intent(MyClass.this, CameraView.class), ACTION_ACTIVITY_PHOTO);
}
});
在我的相机活动中,我有以下内容:
public class CameraView extends Activity implements PictureCallback{
private Camera mCamera;
private ImageButton mShutterBtn;
public void onCreate(Bundle savedInstanceState) {
mCamera = Camera.open();
mShutterBtn = (ImageButton) findViewById(R.id.shutter);
mShutterBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
mShutterBtn.setImageResource(R.drawable.shutter_pressed);
close_shutter();
}
});
}
protected void onResume() {
mCamera.startPreview();
}
private void close_shutter(){
mCamera.takePicture(null, null, this);
}
public void onPictureTaken(byte[] data, Camera camera) {
//save image...
setResult(RESULT_OK);
finish()
}
}
下面是详细的LogCat日志,了解从Activity开始到尝试拍摄图像然后完成活动时发生的事情。我在其中看不到任何指向我的代码问题的内容。任何帮助都会被贬低。
01-29 12:44:39.997: W/CameraView(10936): onCreate
01-29 12:44:40.157: I/AwesomePlayer(165): setDataSource_l(URL suppressed)
01-29 12:44:40.197: I/AwesomePlayer(165): setDataSource_l(URL suppressed)
01-29 12:44:40.237: I/CameraClient(165): Opening camera 0
01-29 12:44:40.277: E/qcom_sensors_hal(590): hal_process_report_ind: Bad item quality: 11
01-29 12:44:40.307: E/mm-camera(195): sensor_load_chromatix: libchromatix_imx111_preview.so: 30
01-29 12:44:40.337: E/qcom_sensors_hal(590): hal_process_report_ind: Bad item quality: 11
01-29 12:44:40.418: E/mm-camera(195): vfe_ops_init: E
01-29 12:44:40.418: E/mm-camera(195): vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM
01-29 12:44:40.418: E/mm-camera(195): vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM
01-29 12:44:40.428: E/mm-camera(195): mctl_init_stats_proc_info: snap_max_line_cnt =30096
01-29 12:44:40.558: W/CameraView(10936): onResume
01-29 12:44:40.588: I/Choreographer(10936): Skipped 35 frames! The application may be doing too much work on its main thread.
01-29 12:44:40.738: E/QCameraHWI(165): android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*): mPreviewWindow = 0x0x4004bc38, mStreamDisplay = 0x0x40132008
01-29 12:44:40.738: D/QCameraHWI(165): android::status_t android::QCameraHardwareInterface::startPreview(): start preview now
01-29 12:44:40.738: I/QCameraHWI(165): android::status_t android::QCameraHardwareInterface::startPreview2():Setting ZSL mode
01-29 12:44:40.748: E/mm-camera(195): config_proc_CAMERA_SET_INFORM_STARTPREVIEW
01-29 12:44:40.748: E/mm-camera(195): config_proc_CAMERA_SET_INFORM_STARTPREVIEW : AF_SET_INFORM_STARTPREVIEW!
01-29 12:44:40.748: E/mm-camera(195): config_update_stream_info Storing stream parameters for video inst 1 as : width = 640, height 480, format = 1 inst_handle = 810081 cid = 0
01-29 12:44:40.768: E/mm-camera(195): config_update_stream_info Storing stream parameters for video inst 3 as : width = 640, height 480, format = 1 inst_handle = 830083 cid = 0
01-29 12:44:40.768: E/mm-camera(195): config_update_stream_info Storing stream parameters for video inst 4 as : width = 512, height 384, format = 1 inst_handle = 840084 cid = 0
01-29 12:44:40.778: E/mm-camera(195): config_decide_vfe_outputs: Ports Used 3, Op mode 1
01-29 12:44:40.778: E/mm-camera(195): config_decide_vfe_outputs Current mode 0 Full size streaming : Disabled
01-29 12:44:40.778: E/mm-camera(195): config_decide_vfe_outputs: Primary: 640x480, extra_pad: 0x0, Fmt: 1, Type: 1, Path: 1
01-29 12:44:40.778: E/mm-camera(195): config_decide_vfe_outputs: Secondary: 640x480, extra_pad: 0x0, Fmt: 1, Type: 3, Path: 4
01-29 12:44:40.778: E/mm-camera(195): config_update_inst_handles Updated the inst handles as 810081, 830083, 0, 0
01-29 12:44:40.918: E/mm-camera(195): sensor_load_chromatix: libchromatix_imx111_zsl.so: 26
01-29 12:44:41.008: E/mm-camera(195): camif_client_set_params: camif has associated with obj mask 0x1
01-29 12:44:41.008: E/mm-camera(195): config_v2_CAMERA_START_common CAMIF_PARAMS_ADD_OBJ_ID failed -1
01-29 12:44:41.008: E/mm-camera(195): vfe_operation_config: format 3
01-29 12:44:41.008: E/mm-camera(195): vfe_operation_config:vfe_op_mode=5
01-29 12:44:41.008: E/mm-camera(195): Invalid ASD Set Params Type
01-29 12:44:41.008: E/mm-camera(195): vfe_set_bestshot: Bestshot mode not changed
01-29 12:44:41.038: E/mm-libcamera2(165): PROFILE HAL: stopPreview(): E: 1359463481.041744933
01-29 12:44:41.038: E/mm-camera(195): config_MSG_ID_STOP_ACK: streamon_mask is not clear. Should not call PP_Release_HW
01-29 12:44:41.148: E/mm-camera(195): config_proc_CAMERA_SET_PARM_AF_MODE Unlock CAF
01-29 12:44:41.148: E/QCameraHWI(165): android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*): mPreviewWindow = 0x0x4004bc38, mStreamDisplay = 0x0x40132008
01-29 12:44:41.158: D/QCameraHWI(165): android::status_t android::QCameraHardwareInterface::startPreview(): start preview now
01-29 12:44:41.158: I/QCameraHWI(165): android::status_t android::QCameraHardwareInterface::startPreview2():Setting ZSL mode
01-29 12:44:41.158: E/mm-camera(195): config_proc_CAMERA_SET_INFORM_STARTPREVIEW
01-29 12:44:41.158: E/mm-camera(195): config_proc_CAMERA_SET_INFORM_STARTPREVIEW : AF_SET_INFORM_STARTPREVIEW!
01-29 12:44:41.158: E/mm-camera(195): config_update_stream_info Storing stream parameters for video inst 1 as : width = 768, height 432, format = 1 inst_handle = 810081 cid = 0
01-29 12:44:41.168: E/mm-camera(195): config_update_stream_info Storing stream parameters for video inst 3 as : width = 640, height 480, format = 1 inst_handle = 830083 cid = 0
01-29 12:44:41.168: E/mm-camera(195): config_update_stream_info Storing stream parameters for video inst 4 as : width = 512, height 384, format = 1 inst_handle = 840084 cid = 0
01-29 12:44:41.178: E/mm-camera(195): config_decide_vfe_outputs: Ports Used 3, Op mode 1
01-29 12:44:41.178: E/mm-camera(195): config_decide_vfe_outputs Current mode 5 Full size streaming : Disabled
01-29 12:44:41.178: E/mm-camera(195): config_decide_vfe_outputs: Primary: 768x432, extra_pad: 0x0, Fmt: 1, Type: 1, Path: 1
01-29 12:44:41.178: E/mm-camera(195): config_decide_vfe_outputs: Secondary: 640x480, extra_pad: 0x0, Fmt: 1, Type: 3, Path: 4
01-29 12:44:41.178: E/mm-camera(195): config_update_inst_handles Updated the inst handles as 810081, 830083, 0, 0
01-29 12:44:41.178: E/mm-camera(195): camif_client_set_params: camif has associated with obj mask 0x1
01-29 12:44:41.178: E/mm-camera(195): config_v2_CAMERA_START_common CAMIF_PARAMS_ADD_OBJ_ID failed -1
01-29 12:44:41.178: E/mm-camera(195): vfe_operation_config: format 3
01-29 12:44:41.178: E/mm-camera(195): vfe_operation_config:vfe_op_mode=5
01-29 12:44:41.228: I/Choreographer(10936): Skipped 33 frames! The application may be doing too much work on its main thread.
01-29 12:44:41.248: E/mm-libcamera2(165): PROFILE HAL: First preview frame received: 1359463481.257401883
01-29 12:44:41.248: E/BufferQueue(162): [SurfaceView] dequeueBuffer: min undequeued buffer count (2) exceeded (dequeued=6 undequeudCount=0)
01-29 12:44:41.328: I/ActivityManager(590): Displayed uk.co.appogee.cfh_rds/.deliver.CameraView: +1s369ms
01-29 12:44:41.338: E/BufferQueue(162): [SurfaceView] dequeueBuffer: min undequeued buffer count (2) exceeded (dequeued=5 undequeudCount=1)
01-29 12:44:41.359: D/overlay(162): FROM_STATE = OV_BYPASS_3_LAYER TO_STATE = OV_CLOSED
01-29 12:44:41.629: D/overlay(162): FROM_STATE = OV_CLOSED TO_STATE = OV_2D_VIDEO_ON_PANEL
01-29 12:44:42.169: D/dalvikvm(10936): GC_EXPLICIT freed 563K, 22% free 11467K/14680K, paused 3ms+5ms, total 44ms
01-29 12:44:42.480: E/mm-camera(195): PROFILE set_parm_AF: : 1359463482.482367550
01-29 12:44:42.480: E/mm-camera(195): af_lg_caf_status 7, af_lg_caf_fv_status 0, first_af 0
01-29 12:44:42.480: E/mm-camera(195): NO ADDITIONAL af HERE!
01-29 12:44:43.060: D/dalvikvm(590): GC_EXPLICIT freed 842K, 31% free 25749K/37136K, paused 5ms+10ms, total 101ms
01-29 12:44:43.190: E/mm-camera(195): config_proc_CAMERA_SET_LG_CAF_LOCK : TAKE PICTURE!
01-29 12:44:43.271: E/mm-libcamera2(165): mm_camera_dispatch_buffered_frames: mframe 0x0, sframe = 0x0
01-29 12:44:43.871: D/dalvikvm(10936): GC_EXPLICIT freed 367K, 22% free 11534K/14680K, paused 3ms+5ms, total 37ms
01-29 12:44:44.722: D/dalvikvm(590): GC_EXPLICIT freed 437K, 31% free 25740K/37136K, paused 3ms+9ms, total 98ms
01-29 12:44:45.623: D/alsa_ucm(165): snd_use_case_set(): uc_mgr 0x41fa22a0 identifier _verb value Inactive
01-29 12:44:45.623: D/alsa_ucm(165): Set mixer controls for HiFi Lowlatency enable 0
01-29 12:44:45.623: D/alsa_ucm(165): snd_use_case_set(): uc_mgr 0x41fa22a0 identifier _disdev value Speaker
01-29 12:44:45.623: D/alsa_ucm(165): Set mixer controls for Speaker enable 0
01-29 12:44:45.653: I/wpa_supplicant(765): wlan0: Authentication with 00:04:96:2a:7a:59 timed out.
01-29 12:44:45.693: D/dalvikvm(10936): GC_EXPLICIT freed 366K, 22% free 11536K/14680K, paused 7ms+11ms, total 77ms
01-29 12:44:45.983: W/ActivityManager(590): Activity idle timeout for ActivityRecord{42aab158 u0 uk.co.appogee.cfh_rds/.deliver.Deliver}
01-29 12:44:46.594: D/dalvikvm(590): GC_EXPLICIT freed 433K, 31% free 25737K/37136K, paused 6ms+10ms, total 108ms
01-29 12:44:47.275: I/wpa_supplicant(765): wlan0: Trying to associate with 00:04:96:2a:7a:2a (SSID='APPOGEE' freq=2432 MHz)
01-29 12:44:47.355: I/wpa_supplicant(765): wlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:04:96:2a:7a:2a status_code=1
01-29 12:44:47.375: D/dalvikvm(982): GC_CONCURRENT freed 366K, 6% free 9695K/10256K, paused 5ms+3ms, total 34ms
01-29 12:44:47.665: D/dalvikvm(10936): GC_EXPLICIT freed 369K, 22% free 11539K/14680K, paused 2ms+7ms, total 51ms
01-29 12:44:48.466: D/dalvikvm(590): GC_EXPLICIT freed 491K, 31% free 25734K/37136K, paused 3ms+11ms, total 93ms
01-29 12:44:48.726: D/AudioStreamOutALSA(165): mHandle->useCase: HiFi Lowlatency
01-29 12:44:48.726: D/ALSAModule(165): s_route: devices 0x2 in mode 0
01-29 12:44:48.726: D/ALSAModule(165): switchDevice: device 2 mode:0
01-29 12:44:48.726: D/ALSAModule(165): No valid input device: 0
01-29 12:44:48.726: D/ALSAModule(165): switchDevice,rxDev:Speaker, txDev:(null), curRxDev:Speaker, curTxDev:None
01-29 12:44:48.726: D/alsa_ucm(165): snd_use_case_set(): uc_mgr 0x41fa22a0 identifier _enadev value Speaker
01-29 12:44:48.726: D/ALSAModule(165): switchDevice: curTxUCMDevivce None curRxDevDevice Speaker
01-29 12:44:48.726: D/alsa_ucm(165): snd_use_case_set(): uc_mgr 0x41fa22a0 identifier _verb value HiFi Lowlatency
01-29 12:44:48.726: D/alsa_ucm(165): Set mixer controls for Speaker enable 1
01-29 12:44:48.726: D/ACDB-LOADER(165): ACDB -> send_afe_cal
01-29 12:44:48.726: D/alsa_ucm(165): Set mixer controls for HiFi Lowlatency enable 1
01-29 12:44:48.726: D/ALSAModule(165): Device value returned is hw:0,14
01-29 12:44:48.736: D/ALSAModule(165): setHardwareParams: reqBuffSize 1024 channels 2 sampleRate 48000
01-29 12:44:48.736: D/ALSAModule(165): setHardwareParams: buffer_size 2048, period_size 1024, period_cnt 2
01-29 12:44:48.766: W/CameraView(10936): onPause
01-29 12:44:48.766: E/mm-libcamera2(165): PROFILE HAL: stopPreview(): E: 1359463488.771425995
01-29 12:44:48.766: E/mm-camera(195): config_MSG_ID_STOP_ACK: streamon_mask is not clear. Should not call PP_Release_HW
01-29 12:44:48.766: E/mm-libcamera2(165): PROFILE HAL: stopPreview(): E: 1359463488.778537241
01-29 12:44:48.766: E/QCameraHWI(165): android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*):Received Setting NULL preview window
01-29 12:44:48.766: E/QCameraHWI(165): android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*): mPreviewWindow = 0x0x0, mStreamDisplay = 0x0x40132008
01-29 12:44:48.766: W/QCameraHWI_Preview(165): Setting NULL preview window
01-29 12:44:48.776: I/CameraClient(165): Destroying camera 0
01-29 12:44:48.776: E/mm-camera(195): config_shutdown_pp Camera not in streaming mode. Returning.
01-29 12:44:48.776: E/mm-camera(195): vfe_ops_deinit: E
01-29 12:44:48.796: E/qcom_sensors_hal(590): hal_process_report_ind: Bad item quality: 11
01-29 12:44:48.846: W/AudioFlinger(165): session id 160 not found for pid 165
01-29 12:44:48.846: W/AudioFlinger(165): session id 161 not found for pid 165
01-29 12:44:48.857: E/qcom_sensors_hal(590): hal_process_report_ind: Bad item quality: 11
01-29 12:44:49.087: D/overlay(162): FROM_STATE = OV_2D_VIDEO_ON_PANEL TO_STATE = OV_CLOSED
01-29 12:44:49.347: D/overlay(162): FROM_STATE = OV_CLOSED TO_STATE = OV_BYPASS_3_LAYER
01-29 12:44:49.948: W/ActivityManager(590): Launch timeout has expired, giving up wake lock!
01-29 12:44:49.958: W/ActivityManager(590): Activity idle timeout for ActivityRecord{42a30e78 u0 uk.co.appogee.cfh_rds/.deliver.CameraView}
01-29 12:44:50.118: D/dalvikvm(10936): GC_EXPLICIT freed 372K, 22% free 11548K/14680K, paused 2ms+6ms, total 41ms
01-29 12:44:50.859: D/dalvikvm(590): GC_EXPLICIT freed 835K, 31% free 25730K/37136K, paused 5ms+10ms, total 118ms
01-29 12:44:51.209: E/DhcpStateMachine(590): DHCP failed on wlan0: Timed out waiting for DHCP to finish
01-29 12:44:51.800: D/dalvikvm(10936): GC_EXPLICIT freed 542K, 23% free 11371K/14680K, paused 2ms+5ms, total 38ms
01-29 12:44:51.960: D/alsa_ucm(165): snd_use_case_set(): uc_mgr 0x41fa22a0 identifier _verb value Inactive
01-29 12:44:51.960: D/alsa_ucm(165): Set mixer controls for HiFi Lowlatency enable 0
01-29 12:44:51.960: D/alsa_ucm(165): snd_use_case_set(): uc_mgr 0x41fa22a0 identifier _disdev value Speaker
01-29 12:44:51.960: D/alsa_ucm(165): Set mixer controls for Speaker enable 0
01-29 12:44:52.360: D/overlay(162): FROM_STATE = OV_BYPASS_3_LAYER TO_STATE = OV_CLOSED
01-29 12:44:52.410: D/dalvikvm(590): GC_EXPLICIT freed 418K, 31% free 25728K/37136K, paused 9ms+10ms, total 128ms
01-29 12:44:53.722: D/dalvikvm(10936): GC_EXPLICIT freed 362K, 23% free 11371K/14680K, paused 2ms+5ms, total 37ms
01-29 12:44:54.262: D/dalvikvm(590): GC_EXPLICIT freed 420K, 31% free 25728K/37136K, paused 3ms+9ms, total 94ms
01-29 12:44:55.544: D/dalvikvm(10936): GC_EXPLICIT freed 367K, 23% free 11373K/14680K, paused 4ms+5ms, total 47ms
01-29 12:44:56.014: D/dalvikvm(590): GC_EXPLICIT freed 418K, 31% free 25728K/37136K, paused 3ms+10ms, total 93ms
01-29 12:44:57.195: D/dalvikvm(10936): GC_EXPLICIT freed 365K, 23% free 11373K/14680K, paused 2ms+5ms, total 36ms
01-29 12:44:57.275: I/wpa_supplicant(765): wlan0: Authentication with 00:04:96:2a:7a:2a timed out.
01-29 12:44:57.756: D/dalvikvm(590): GC_EXPLICIT freed 429K, 31% free 25730K/37136K, paused 4ms+9ms, total 107ms
01-29 12:44:58.857: W/ActivityManager(590): Activity idle timeout for ActivityRecord{42aab158 u0 uk.co.appogee.cfh_rds/.deliver.Deliver}
01-29 12:44:58.907: D/overlay(162): FROM_STATE = OV_CLOSED TO_STATE = OV_BYPASS_3_LAYER
01-29 12:44:58.957: I/wpa_supplicant(765): wlan0: Trying to associate with 00:04:96:2a:7a:59 (SSID='APPOGEE' freq=2452 MHz)
01-29 12:44:59.027: D/dalvikvm(10936): GC_EXPLICIT freed 365K, 23% free 11374K/14680K, paused 5ms+7ms, total 66ms
01-29 12:44:59.027: I/wpa_supplicant(765): wlan0: CTRL-EVENT-ASSOC-REJECT bssid=00:04:96:2a:7a:59 status_code=1
01-29 12:44:59.468: D/dalvikvm(590): GC_EXPLICIT freed 462K, 31% free 25737K/37136K, paused 3ms+11ms, total 96ms
01-29 12:45:00.929: D/dalvikvm(10936): GC_EXPLICIT freed 357K, 23% free 11374K/14680K, paused 3ms+5ms, total 36ms
01-29 12:45:01.270: D/dalvikvm(590): GC_EXPLICIT freed 443K, 31% free 25734K/37136K, paused 4ms+10ms, total 94ms
01-29 12:45:01.920: D/overlay(162): FROM_STATE = OV_BYPASS_3_LAYER TO_STATE = OV_CLOSED
01-29 12:45:02.641: D/dalvikvm(10936): GC_EXPLICIT freed 359K, 23% free 11375K/14680K, paused 2ms+6ms, total 39ms
01-29 12:45:02.932: D/dalvikvm(590): GC_EXPLICIT freed 417K, 31% free 25733K/37136K, paused 3ms+9ms, total 113ms
01-29 12:45:04.443: D/dalvikvm(10936): GC_EXPLICIT freed 363K, 23% free 11376K/14680K, paused 2ms+5ms, total 36ms
01-29 12:45:04.643: D/dalvikvm(590): GC_EXPLICIT freed 416K, 31% free 25733K/37136K, paused 3ms+10ms, total 98ms
01-29 12:45:05.274: D/overlay(162): FROM_STATE = OV_CLOSED TO_STATE = OV_BYPASS_3_LAYER
01-29 12:45:05.965: D/dalvikvm(10936): GC_EXPLICIT freed 362K, 23% free 11377K/14680K, paused 2ms+4ms, total 39ms
01-29 12:45:06.095: D/dalvikvm(590): GC_EXPLICIT freed 422K, 31% free 25733K/37136K, paused 7ms+10ms, total 127ms
01-29 12:45:06.936: D/overlay(162): FROM_STATE = OV_BYPASS_3_LAYER TO_STATE = OV_CLOSED
01-29 12:45:06.936: I/InputReader(590): Reconfiguring input devices. changes=0x00000004
01-29 12:45:06.936: I/InputReader(590): Device reconfigured: id=6, name='touch_dev', size 768x1280, orientation 3, mode 1, display id 0
01-29 12:45:06.936: I/ActivityManager(590): Config changed: {1.3 234mcc20mnc en_GB ldltr sw384dp w598dp h359dp 320dpi nrml land finger -keyb/v/h -nav/h s.23}
答案 0 :(得分:0)
所以,基于今天我一直在玩这个zxing issue的信息,我当前的代码(不起作用)是:
List<Size> supportedPreviewSizes = mCamera.getParameters().getSupportedPreviewSizes();
parameters.setPreviewSize(supportedPreviewSizes.get(2).width, supportedPreviewSizes.get(2).height);
如果我将其更改为:
List<Size> supportedPreviewSizes = mCamera.getParameters().getSupportedPreviewSizes();
parameters.setPreviewSize(supportedPreviewSizes.get(0).width, supportedPreviewSizes.get(0).height);
然后它获得回调。现在我知道(从调试中)getSupportedPreviewSizes返回一个包含12个项目的列表,因此没有索引超出范围的例外。我不知道为什么会这样,但确实如此(在我的情况下)。谁能提供探索?或者评论其他人如何选择使用哪种尺寸,是否有一些合理的方法来确定哪种尺寸是“最好的”?不幸的是,“最好的”是主观的,取决于你想用什么图像?
答案 1 :(得分:0)
我遇到了与HTC Desire 620相同的问题,这是我遇到的唯一没有触发PictureCallback的手机
我找到的解决方案是在调用takePicture之前添加setPreviewSize 见下文,希望它有所帮助。
mCameraParams.setPictureSize(mSize.width, mSize.height);
mCameraParams.setPreviewSize(mSize.width, mSize.height);
if (isFlashAvailable()) {
mCameraParams
.setFlashMode(_flashModes[_flashMode]);
}
try {
mCamera.setParameters(mCameraParams);
} catch (Exception e) {
e.printStackTrace();
}
is_camera_ready = false;
Log.d(TAG, "mCamera.takePicture");
mCamera.takePicture(null, null, new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] data,
Camera camera) {
Log.d(TAG, "onPictureTaken jpeg");
mCamera.stopPreview();
if (data != null) {
try {
mBitmap = BitmapFactory
.decodeByteArray(data, 0,
data.length);
} catch (OutOfMemoryError e) {
e.printStackTrace();
try {
mBitmap = BitmapFactory
.decodeByteArray(data, 0,
data.length);
} catch (OutOfMemoryError e2) {
e2.printStackTrace();
}
}
is_camera_ready = true;
mCamera.startPreview();
mPreview.refreshDrawableState();
}
}
});