La pièce jointe ne vient pas par courrier par programme

Je joigne un fichier TEXT au courrier électronique avec le code:

Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", "abc@gmail.com", null)); emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Report"); emailIntent.putExtra(Intent.EXTRA_TEXT, prepareBodyMail()); File root = Environment.getExternalStorageDirectory(); File file = new File(root, "/MyFolder/report.txt"); Uri uri = Uri.fromFile(file); emailIntent.putExtra(Intent.EXTRA_STREAM, uri); startActivity(Intent.createChooser(emailIntent, "Pick an Email provider")); 

Ce code fonctionne parfaitement avec Gmail, le courrier électronique et d'autres applications

  • Communiquez avec Activity from Service (LocalService) - Best Practices d'Android
  • Capture / interception d'intentes Android pendant l'exécution
  • Calendrier Android: comment écrire l'adaptateur de synchronisation pour le calendrier INSERT
  • Brancher les extras de l'action Android Share en fonction de la méthode qu'ils choisissent de partager
  • Qu'est-ce que Intent from onActivityResult Parameters
  • Activation de début à l'aide d'une action personnalisée
  • Mais ceci n'attache pas le fichier avec l'application INBOX par Google

    Seul le corps et le sujet arrivent sans pièce jointe

    J'ai signalé ce problème aux Groupes Google au problème de la boîte de réception

    Est-ce que quelqu'un peut aider ce qui me manque dans le code?

  • Connexion Google ne fonctionne pas
  • Comment faire que le récepteur de diffusion de l'application continue à écouter sans qu'un service s'exécute en arrière-plan
  • Comment envoyer un courrier électronique avec un lien pour ouvrir l'application Android
  • Lancer une application sms avec une intention
  • Manipulation d'une nouvelle intention en fragments
  • SINGLE_TOP | CLEAR_TOP semble fonctionner à 95% du temps. Pourquoi les 5%?
  • 4 Solutions collect form web for “La pièce jointe ne vient pas par courrier par programme”

    Essaye ça

      Uri myUri = Uri.parse("file://" + path); emailIntent.putExtra(Intent.EXTRA_STREAM, myUri); 
     String fileLocation = Environment.getExternalStorageDirectory() + "/MyFolder/report.txt"; String to[] = {"abc@gmail.com"}; Intent intentEmail = new Intent(Intent.ACTION_SEND); intentEmail.setType("vnd.android.cursor.dir/email"); intentEmail.putExtra(Intent.EXTRA_EMAIL, to); intentEmail.putExtra(Intent.EXTRA_STREAM, fileLocation); intentEmail.putExtra(Intent.EXTRA_SUBJECT, "Subject"); startActivity(Intent.createChooser(intentEmail , "Pick an Email provider")); 
     Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"email@example.com"}); intent.putExtra(Intent.EXTRA_SUBJECT, "subject here"); intent.putExtra(Intent.EXTRA_TEXT, "body text"); File root = Environment.getExternalStorageDirectory(); File file = new File(root, xmlFilename); if (!file.exists() || !file.canRead()) { Toast.makeText(this, "Attachment Error", Toast.LENGTH_SHORT).show(); finish(); return; } Uri uri = Uri.fromFile("file://" + file); intent.putExtra(Intent.EXTRA_STREAM, uri); startActivity(Intent.createChooser(intent, "Send email...")); 
      public void sendMailWithIntent(String emailTo, String subject, String emailText, List<String> filePaths) { try { //need to "send multiple" to get more than one attachment final Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE); emailIntent.setType("text/plain"); emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, Util.extractEmails(emailTo)); // emailIntent.putExtra(android.content.Intent.EXTRA_CC, // new String[]{emailCC}); emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject); emailIntent.putExtra(Intent.EXTRA_TEXT, emailText); ArrayList<Uri> uris = new ArrayList<Uri>(); //has to be an ArrayList if (filePaths != null) { //convert from paths to Android friendly Parcelable Uri's for (String file : filePaths) { File fileIn = new File(file); Uri u = Uri.fromFile(fileIn); uris.add(u); } } emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); Intent chooser = Intent.createChooser(emailIntent, "Send mail..."); activity.startActivityForResult(chooser, 1); } catch (Exception e) { new ShowToast(context, e.getMessage()); } } 

    Méthode d'appel

      List<String> list = new ArrayList<>(); list.add(TO_ATTACH_ONE); list.add(TO_ATTACH_TWO); sendMailWithIntent(toAddresses, subject, body, list); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.