Cómo adjuntar un PDF a un correo electrónico de la aplicación Android – El tamaño del archivo es cero

Estoy intentando adjuntar un archivo PDF llamado download.pdf a un correo electrónico en mi aplicación para Android. Estoy copiando el archivo primero a la tarjeta SD y luego adjuntar el correo electrónico.

No estoy si es relevante, pero estoy probando en un dispositivo de pestañas galácticas. La ruta de almacenamiento externa devuelve mnt / sdcard /

Mi código es el siguiente:

public void sendemail() throws IOException { CopyAssets(); String emailAddress[] = {""}; File externalStorage = Environment.getExternalStorageDirectory(); Uri uri = Uri.fromFile(new File(externalStorage.getAbsolutePath() + "/" + "download.pdf")); Intent emailIntent = new Intent(Intent.ACTION_SEND); emailIntent.putExtra(Intent.EXTRA_EMAIL, emailAddress); emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject"); emailIntent.putExtra(Intent.EXTRA_TEXT, "Text"); emailIntent.setType("application/pdf"); emailIntent.putExtra(Intent.EXTRA_STREAM, uri); startActivity(Intent.createChooser(emailIntent, "Send email using:")); } public void CopyAssets() { AssetManager assetManager = getAssets(); String[] files = null; try { files = assetManager.list(""); } catch (IOException e) { Log.e("tag", e.getMessage()); } for(String filename : files) { InputStream in = null; OutputStream out = null; if (filename.equals("download.pdf")) { try { System.out.println("Filename is " + filename); in = assetManager.open(filename); File externalStorage = Environment.getExternalStorageDirectory(); out = new FileOutputStream(externalStorage.getAbsolutePath() + "/" + filename); System.out.println("Loacation is" + out); copyFile(in, out); in.close(); in = null; out.flush(); out.close(); out = null; } catch(Exception e) { Log.e("tag", e.getMessage()); } } } } private void copyFile(InputStream in, OutputStream out) throws IOException { byte[] buffer = new byte[1024]; int read; while((read = in.read(buffer)) != -1){ out.write(buffer, 0, read); } } } 

El problema es que el archivo que se adjunta es 0 bytes de tamaño. ¿Puede alguien detectar lo que podría estar mal?

EDITAR

Puedo ver que el archivo se ha guardado en el dispositivo si miro en ajustes, por lo tanto esto debe ser un problema alrededor de cómo estoy atando el archivo al email. En el registro de errores veo:

 gMail Attachment URI: file:///mnt/sdcard/download.pdf gMail type: application/pdf gmail name: download.pdf gmail size: 0 

EDITAR

¿Se pregunta si esto es un error en la pestaña galaxia? Si abro el archivo a través de un visor de pdf (desde mi aplicación), a continuación, intenta adjuntar a un correo electrónico de gmail, el tamaño es de nuevo 0. ¿Puede alguien verificar?

Gracias.

 String[] mailto = {""}; Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/CALC/REPORTS/",pdfname )); Intent emailIntent = new Intent(Intent.ACTION_SEND); emailIntent.putExtra(Intent.EXTRA_EMAIL, mailto); emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Calc PDF Report"); emailIntent.putExtra(Intent.EXTRA_TEXT, ViewAllAccountFragment.selectac+" PDF Report"); emailIntent.setType("application/pdf"); emailIntent.putExtra(Intent.EXTRA_STREAM, uri); startActivity(Intent.createChooser(emailIntent, "Send email using:")); 

Si su archivo download.pdf existe en SDCard. Así que el problema debe ser obtener Uri de archivo. Prueba esto, funciona para mí.

 Uri uri = Uri.fromFile(new File("/sdcard/", "download.pdf")); 

El mismo problema ocurre también para mí. He aclarado que utilizando algún método de los ejemplos. Ya he respondido a una pregunta similar a su consulta. Tal vez eso pueda ayudarte.

 File externalStorage = Environment.getExternalStorageDirectory(); String PDFpath = externalStorage.toString(); String pdfpath =path.replace("/mnt",""); Uri uri = Uri.parse(new File("file://" + pdfpath)); 
  • Procesamiento de archivos PDF para reducir el tamaño / o la complejidad del archivo
  • Ejemplo de código para implementar un lector de PDF
  • ¿Cómo podemos abrir archivos como ppt, doc, pps, rtf, etc. en Android?
  • Convertir JPG a PDF
  • Crear archivo PDF desde android
  • ¿Qué le pasó a DroidText?
  • Abrir pdf con openwith opción android
  • Biblioteca de visor de PDF de Android o tutoriales de biblioteca de muPDF
  • IText crear un documento con tamaños de página desiguales
  • Obtener la imagen de dibujable y añadir a PDF utilizando iText
  • Cómo obtener la actividad de vista Web para desaparecer con PDF Link Action_view
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.