web-dev-qa-db-fra.com

Envoi d'e-mails à partir de Android lorsque vous cliquez sur le bouton

Je dois fournir aux utilisateurs une fonctionnalité permettant aux utilisateurs de partager certaines données en envoyant des e-mails. J'ai utilisé le code ci-dessous.

    Intent email = new Intent(Android.content.Intent.ACTION_SENDTO);
    email.setType("message/rfc822");
    email.putExtra(Intent.EXTRA_EMAIL, new String[] { to });
    email.putExtra(Intent.EXTRA_SUBJECT, subject);
    email.putExtra(Intent.EXTRA_TEXT, message);
    startActivity(Intent.createChooser(email,"Choose an Email client :"));

Cela montre Email, gmail, Skype et envoyer via Bluetooth pour que l'utilisateur puisse choisir. Je ne veux pas que l'utilisateur montre Skype, envoie via Bluetooth dans cette liste. Ce que je dois faire ? J'ai WhatsApp dans mon téléphone, qui fait la même chose, mais n'affiche pas les e-mails, Bluetooth dans la liste (Paramètres-> Aide-> Contactus -> ...). N'affiche que les e-mails et Gmail dans la liste. Je dois faire de même.

22
Amardeepvijay

Essaye ça:

Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
            "mailto","[email protected]", null));
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, message);
startActivity(Intent.createChooser(intent, "Choose an Email client :"));

Si vous n'avez pas de destinataire spécifique, procédez comme suit:

Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
            "mailto", "", null));
37
localhost

utilisez cette méthode pour partager via gmail uniquement le jus que vous devez appeler

startActivity(getSendEmailIntent(context, email,subject, body));





public Intent getSendEmailIntent(Context context, String email,
                    String subject, String body) {
            Intent emailIntent = new Intent(Android.content.Intent.ACTION_SEND);

            try {

                // Explicitly only use Gmail to send
                emailIntent.setClassName("com.google.Android.gm",
                        "com.google.Android.gm.ComposeActivityGmail");

                emailIntent.setType("text/html");

                // Add the recipients
                if (email != null)
                    emailIntent.putExtra(Android.content.Intent.EXTRA_EMAIL,
                            new String[] { email });

                if (subject != null)
                    emailIntent.putExtra(Android.content.Intent.EXTRA_SUBJECT,
                            subject);

                if (body != null)
                    emailIntent.putExtra(Android.content.Intent.EXTRA_TEXT, Html.fromHtml(body));

                // Add the attachment by specifying a reference to our custom
                // ContentProvider
                // and the specific file of interest
                // emailIntent.putExtra(
                // Intent.EXTRA_STREAM,
                // Uri.parse("content://" + CachedFileProvider.AUTHORITY + "/"
                // + fileName));

                 return emailIntent;
    //          myContext.startActivity(emailIntent);
            } catch (Exception e) {
                emailIntent.setType("text/html");

                // Add the recipients
                if (email != null)
                    emailIntent.putExtra(Android.content.Intent.EXTRA_EMAIL,
                            new String[] { email });

                if (subject != null)
                    emailIntent.putExtra(Android.content.Intent.EXTRA_SUBJECT,
                            subject);

                if (body != null)
                    emailIntent.putExtra(Android.content.Intent.EXTRA_TEXT, Html.fromHtml(body));

    //          myContext.startActivity(Intent.createChooser(emailIntent,
    //                  "Share Via"));
                 return emailIntent;
            }
            }
0
Maulik.J