web-dev-qa-db-fra.com

Intent.EXTRA_EMAIL ne pas renseigner le champ À

J'essaie d'utiliser un intention pour envoyer un courrier électronique à partir de mon application, mais le champ À du courrier électronique ne sera pas renseigné. Si j'ajoute du code pour renseigner le sujet ou le texte, ils fonctionnent correctement. Seul le champ À ne sera pas peuplé.

J'ai également essayé de changer le type en "text/plain" et "text/html" mais le même problème se pose. Quelqu'un peut-il aider s'il vous plaît?

public void Email(){

    Intent emailIntent = new Intent(Intent.ACTION_SEND); 
    emailIntent.setType("message/rfc822");  //set the email recipient
    String recipient = getString(R.string.IntegralEmailAddress);
    emailIntent.putExtra(Android.content.Intent.EXTRA_EMAIL  , recipient);
    //let the user choose what email client to use
    startActivity(Intent.createChooser(emailIntent, "Send mail using...")); }

Le client de messagerie que j'essaie d'utiliser est Gmail.

84
user

Je pense que vous ne passez pas recipient en tant que array of string

ça devrait être comme

emailIntent.putExtra(Android.content.Intent.EXTRA_EMAIL,new String[] { "[email protected]" });
203
MKJParekh

Utilisez ceci

public void Email(){
    // use this to declare your 'recipient' string and get your email recipient from your string xml file
    Resources res = getResources();
    String recipient = getString(R.string.IntegralEmailAddress);
    Intent emailIntent = new Intent(Intent.ACTION_SEND); 
    emailIntent.setType("message/rfc822");  //set the email recipient
    emailIntent.putExtra(Intent.EXTRA_EMAIL, recipient);
    //let the user choose what email client to use
    startActivity(Intent.createChooser(emailIntent, "Send mail using...")); 

``}

Cela fonctionnera :)
C’est ce que dit la documentation Android sur Intent.Extra_Email
- Un tableau de chaînes de toutes les adresses électroniques de destinataires "À".
Donc, vous devriez nourrir la chaîne correctementVous pouvez en lire plus ici
http://developer.Android.com/guide/components/intents-common.html#Email et ici http://developer.Android.com/guide/topics/resources /string-resource.html Ou utilisez l'action ACTION_SENDTO et incluez le schéma de données "mailto:". Par exemple: 

Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:")); // only email apps should handle this
intent.putExtra(Intent.EXTRA_EMAIL, addresses);
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
if (intent.resolveActivity(getPackageManager()) != null) {
    startActivity(intent);
}
4
Nimesh Jain
private void callSendMeMail() {
    Intent Email = new Intent(Intent.ACTION_SEND);
    Email.setType("text/email");
    Email.putExtra(Intent.EXTRA_EMAIL, new String[] { "[email protected]" });
    Email.putExtra(Intent.EXTRA_SUBJECT, "Feedback");
    startActivity(Intent.createChooser(Email, "Send mail to Developer:"));
}
1
Yuliia Ashomok