2017-02-13 94 views
1

我正在使用正面和背面摄像头以编程方式捕捉图像并保存到内部存储器中的文件夹的Android应用程序。 保存图像后,应用程序将通过电子邮件发送文件夹的内容。如何等待应用程序直到完全捕获图像,否则发送空白电子邮件?如何等待,直到相机在Android中捕捉图像?

class MainActivity{ 
//other codes 
public void buttonClick(View v) { 

    CameraService.startCamera(0, true); 
    sendEmail(); 
} 

    public void sendEmail() 
    { 
    //get contents from the folder and send the contents using java mail api 
    } 
} 

这是使用前后相机拍摄图像的类。

class CamearService 
{ 
    public static void startCamera(int cameraID,final boolean isFirstTime) { 
    mCamera = Camera.open(cameraID); 
    try { 
     mCamera.setPreviewTexture(new SurfaceTexture(10)); 
    } catch (IOException e1) { 
    } 

    Parameters params = mCamera.getParameters(); 
    params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); 
    params.setPictureFormat(ImageFormat.JPEG); 
    params.setJpegQuality(100); 
    mCamera.setParameters(params); 
    mCamera.startPreview(); 

    mCamera.takePicture(null, null, null, new PictureCallback() { 
     @Override 
     public void onPictureTaken(byte[] data, Camera camera) { 
      Log.i("hello", "picture-taken"); 
      if (data != null) { 

       mCamera.stopPreview(); 
       mCamera.release(); 

       try { 

        BitmapFactory.Options opts = new BitmapFactory.Options(); 
        Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, 
          data.length, opts); 

        storeImage(bitmap); //function to store image to local folder 
        if(isFirstTime) 
        { 
         //Capture using front camera 
         CameraService.startCamera(1, false); 
        } 

       } catch (Exception e) { 
        e.printStackTrace(); 
       } 

      } 
     } 
    }); 

} 
} 

当我点击按钮时startCamera()函数被执行并且捕获第二个图像之前sendEmail()函数被执行。结果只有一个图像通过电子邮件发送。

+0

你是如何捕捉图像? – yosriz

+1

'保存图像后,应用程序将通过电子邮件发送文件夹的内容。 '。那好吧!那永远不会出错。 – greenapps

+0

请张贴一些代码。 –

回答

相关问题