在不启用预览功能的情况下拍照,用后摄像头没有问题,而用前摄像头拍,老是不能回调PictureCallback,请指教,非常感谢!
    public boolean TakePicture()
    {
      if(mCamera != null)
     {
     mCamera.release();
     mCamera = null;
     }
   
//      int iID = 1;
//      mCamera = Camera.open(1);
      int cameraCount = 0;  
        
      Camera.CameraInfo cameraInfo = new Camera.CameraInfo();  
      cameraCount = Camera.getNumberOfCameras(); // get cameras number  
              
      for ( int camIdx = 0; camIdx < cameraCount;camIdx++ ) {  
          Camera.getCameraInfo( camIdx, cameraInfo ); // get camerainfo  
         if ( cameraInfo.facing ==Camera.CameraInfo.CAMERA_FACING_FRONT ) { 
         // 代表摄像头的方位,目前有定义值两个分别为CAMERA_FACING_FRONT前置和CAMERA_FACING_BACK后置  
             try {              
             mCamera = Camera.open( camIdx );  
              } catch (RuntimeException e) {  
                e.printStackTrace();  
              }
                 
          }  
      } 
     
       Camera.Parameters parameters = mCamera.getParameters();
       parameters.setPictureFormat(PixelFormat.JPEG);
       //parameters.setPreviewSize(800, 480);
       //parameters.setFocusMode("auto");
       //parameters.set("jpeg-quality", 85);     
       parameters.setPictureSize(320, 240);
//       List<Camera.Size> lSize = parameters.getSupportedPreviewSizes();
       try{
        mCamera.setParameters(parameters);
       }
       catch(Exception e){
        e.printStackTrace();//setParameters failed
       }
       
       //启动摄像头取景
       mCamera.startPreview();
       
       SystemClock.sleep(3000);
       if (mCamera != null) {        //进行拍照
           mCamera.takePicture(null, null, pictureCallback);
       }         
       
       //停止摄像头取景
       mCamera.stopPreview();
           
       return true;
    }
    
    //拍完照后的回调函数
    public Camera.PictureCallback pictureCallback = new Camera.PictureCallback() {
        public void onPictureTaken(byte[] data, Camera camera) {         //从byte数组数据生成图像数据。
            mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);            
            //释放摄像头
            mCamera.release();
            mCamera = null;
        }
    };