1

I was having some problem when trying to attach a generated QR code as attachment using email in Android Programming. Here is the part where I generate the QR code and then call the send email:

@SuppressLint("NewApi")
private void generateQR() {
    // Find screen size
    WindowManager manager = (WindowManager) getSystemService(WINDOW_SERVICE);
    Display display = manager.getDefaultDisplay();
    Point point = new Point();
    display.getSize(point);
    int width = point.x;
    int height = point.y;

    // Encode with a QR Code image
    QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(qrInputText, null,
            Contents.Type.TEXT, BarcodeFormat.QR_CODE.toString(),
            smallerDimension);
    try {
        Bitmap bitmap = qrCodeEncoder.encodeAsBitmap();
        ImageView myImage = (ImageView) findViewById(R.id.ivImage);
        myImage.setImageBitmap(bitmap);     

        new SendEmailAsyncTask().execute(bitmap);
    } catch (WriterException e) {
        e.printStackTrace();
    }
}

class SendEmailAsyncTask extends AsyncTask <Bitmap, Void, Boolean> {

     @Override
  protected Boolean doInBackground(Bitmap... params) {
     GMailSender sender = new GMailSender("something@gmail.com","pwd");
        try {
      sender.sendMail("Successful Event Registration QR Code",params[0], "something@gmail.com", "something@gmail.com");
                System.out.println("send");
        } catch (Exception e) {
         System.err.println("err"+e);

                Log.e("SendMail", e.getMessage(), e);
        }
   return null;
  }
}

However, I am getting error message at the sendMail that line:

The method sendMail(String, String, String, String) in the type GMailSender is not applicable for the arguments (String, Bitmap, String, String)

Because previously when I replace the params[0], it was a string before that. But then I have to pass in the generated QR code bitmap into the email content. Any ideas?

Thanks in advance.

Update

Bitmap bitmap = qrCodeEncoder.encodeAsBitmap();
        ImageView myImage = (ImageView) findViewById(R.id.ivImage);
        myImage.setImageBitmap(bitmap);
        counterQR++;    

        String path = Environment.getExternalStorageDirectory().toString();
        OutputStream fOut = null;
        File file = new File(path, "eNeighbourhood"+counterQR+".jpg"); 
        fOut = new FileOutputStream(file);

        Bitmap pictureBitmap = getImageBitmap(bitmap); // obtaining the Bitmap
        pictureBitmap.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
        fOut.flush();
        fOut.close(); 

        MediaStore.Images.Media.insertImage(getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName());

With these code above, I am trying to convert bitmap into file so that I can modify the sendMail() by taking in file parameter as well. However, I am getting getImageBitmap is undefined for MainActivity

  • Any ideas? I am still stuck –  Jan 31 '15 at 06:56
  • refer http://stackoverflow.com/questions/4263375/android-saving-created-bitmap-to-directory-on-sd-card to create file from bitmap and then search to attach image to an email – Calvin Jan 31 '15 at 08:41

0 Answers0