Android uygulamamdan e-postalar nasıl gönderilir?


Yanıtlar:


978

En iyi (ve en kolay) yol Intent:

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");
i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"recipient@example.com"});
i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
i.putExtra(Intent.EXTRA_TEXT   , "body of email");
try {
    startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(MyActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}

Aksi takdirde kendi müşterinizi yazmanız gerekir.


6
Yukarıdaki kodda, gönderen e-posta kimliği yok.O zaman mesaj nasıl gönderilir?
KIRAN KJ

38
KIRAN: Bunu anlamak için Intents'in nasıl çalıştığına bakmanız gerekecek. Temel olarak alıcı, konu ve gövde zaten doldurulmuş bir e-posta uygulaması açar. Gönderimi yapmak e-posta uygulamasına bağlıdır.
Jeremy Logan

8
Etkinlik başlatılarak e-posta "TO" alanında görünmüyor. kimse biliyor mu?
Hamza Waqas

11
Bu yorumun büyük katkısı: mesaj / rfc822
Guilherme Oliveira

22
seçicinin yalnızca e-posta uygulamalarını görüntülediğinden emin olmak için bunları ekleyin: Intent i = new Intent(Intent.ACTION_SENDTO); i.setType("message/rfc822"); i.setData(Uri.parse("mailto:"));
Edris

194

Use .setType("message/rfc822")veya chooser size gönderme amacını destekleyen tüm (birçok) uygulamayı gösterecektir.


5
Güzel, bu daha fazla oy olmalı tbh. Emülatörde test fark etmeyeceksiniz, ancak gerçek bir cihazda "metin / düz" göndermeye gittiğinizde size 15+ uygulamanın bir listesini verecektir !! bu yüzden "message / rfc822" kesinlikle önerilir (e-posta standardı).
Blundell

7
@Blundell merhaba, ama değiştirdikten sonra herhangi bir fark görmedimmessage/rfc822
çizin

2
Bluetooth'u listeden çıkarabilir misiniz? Bu da bu tip ile ortaya çıkıyor. +1 olsa da, düzgün hile!
ingh.am

4
Bizim pastırma kurtardı. İstemciye, kullanıcının destek isteklerini e-postayla göndermek yerine tweetleyebileceğini açıklayamazsınız.
Kevin Galligan

1
+1111111 Bu, sonsuz + 1'leri hak ediyor, böylece diğerleri bunu görebiliyor. Bu kısmı kaçırdım ve bir süre bu sorunla uğraşmak zorunda kaldım!
ChallengeAccepted

89

Bunu uzun zamandan beri kullanıyorum ve iyi görünüyor, e-posta olmayan uygulamalar görünmüyor. E-posta gönderme amacı göndermenin başka bir yolu:

Intent intent = new Intent(Intent.ACTION_SENDTO); // it's not ACTION_SEND
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject of email");
intent.putExtra(Intent.EXTRA_TEXT, "Body of email");
intent.setData(Uri.parse("mailto:default@recipient.com")); // or just "mailto:" for blank
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // this will make such that when user returns to your app, your app is displayed, instead of the email app.
startActivity(intent);

1
Raporlanmamış eylem: Bu eylem şu anda desteklenmemektedir
erdomester

4
lgor G-> plz setType "(düz / metin") yerine setType ("metin / düz") olarak
değişir

2
.setType ("message / rfc822") metin / düz değil
Aç Androider

1
Bu kod e-posta niyetini açacak mı? i e-posta şifresini göndermek istediğiniz @yuku nasıl ben kullanıcıya niyet göstermeden e-posta gönderebilir
Erum

2
Bu cevap oldukça etkili . :)
Nick Volynkin

54

Ekli bir ikili hata günlük dosyası ile e-posta göndermek için şu anda kabul edilen yanıt satırlarında bir şey kullanıyordum. GMail ve K-9 gayet iyi gönderiyor ve posta sunucumda da gayet iyi geliyor. Tek sorun, ekli günlük dosyasını açma / kaydetme sorunları vardı seçim Thunderbird benim posta istemcisi oldu. Aslında şikayet etmeden dosyayı hiç kaydetmedi.

Bu postanın kaynak kodlarından birine baktım ve günlük dosyası ekinin (anlaşılır şekilde) mime tipine sahip olduğunu fark ettim message/rfc822. Elbette bu ek, ekli bir e-posta değildir. Ancak Thunderbird bu küçük hatayla zarif bir şekilde baş edemez. Yani bu bir serseriydi.

Biraz araştırma ve denemeden sonra aşağıdaki çözümü buldum:

public Intent createEmailOnlyChooserIntent(Intent source,
    CharSequence chooserTitle) {
    Stack<Intent> intents = new Stack<Intent>();
    Intent i = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto",
            "info@domain.com", null));
    List<ResolveInfo> activities = getPackageManager()
            .queryIntentActivities(i, 0);

    for(ResolveInfo ri : activities) {
        Intent target = new Intent(source);
        target.setPackage(ri.activityInfo.packageName);
        intents.add(target);
    }

    if(!intents.isEmpty()) {
        Intent chooserIntent = Intent.createChooser(intents.remove(0),
                chooserTitle);
        chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS,
                intents.toArray(new Parcelable[intents.size()]));

        return chooserIntent;
    } else {
        return Intent.createChooser(source, chooserTitle);
    }
}

Aşağıdaki gibi kullanılabilir:

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("*/*");
i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(crashLogFile));
i.putExtra(Intent.EXTRA_EMAIL, new String[] {
    ANDROID_SUPPORT_EMAIL
});
i.putExtra(Intent.EXTRA_SUBJECT, "Crash report");
i.putExtra(Intent.EXTRA_TEXT, "Some crash report details");

startActivity(createEmailOnlyChooserIntent(i, "Send via email"));

Gördüğünüz gibi, createEmailOnlyChooserIntent yöntemi doğru amaç ve doğru mime türüyle kolayca beslenebilir.

Daha sonra bir ACTION_SENDTO mailtoprotokol amacına (yalnızca e-posta uygulamaları olan) yanıt veren kullanılabilir etkinlikler listesini gözden geçirir ve bu etkinlik listesine ve doğru mime türüyle orijinal ACTION_SEND amacına göre bir seçici oluşturur.

Başka bir avantaj da Skype'ın artık listelenmemiş olmasıdır (rfc822 mime tipine yanıt verir).


1
Ben sadece size kod snippet'i ekledi ve iyi çalışıyor. Google Drive, Skype gibi uygulamalar listelenmeden önce, ancak başka bir uygulama çağırmadan uygulamadan posta göndermenin bir yolu yok mu? Ben sadece yukarıdaki @Rene postet ama sadece basit bir e-posta göndermek için çok karmaşık görünüyor e-posta istemcisi hakkında makaleyi okuyun
Alex Cio

Mükemmel cevap. Skype ve Google Drive da geliyordu ACTION_SENDve bu çok güzel bir şekilde sıralanıyor.
darrenp

1
Yukarıdaki en popüler çözüm Skype ve Vkontakte'yi de döndürüyor. Bu çözüm daha iyi.
Denis Kutlubaev

crashLogFile nedir? nereden başladı? pease sepecify
Noufal

@Noufal Bu, kendi kod tabanımda kalan bir şey. FileYakalanmayan bir istisna olması durumunda Android uygulamalarımın arka planda oluşturduğu kilitlenme günlük dosyasına işaret eden bir örnektir. Bu örnek, nasıl bir e-posta ekinin ekleneceğini göstermelidir. Harici depolama biriminden başka bir dosya da ekleyebilirsiniz (örneğin bir resim). crashLogFileÇalışan bir örnek almak için bu satırı ile de kaldırabilirsiniz .
tiguchi

37

To SADECE LET e-posta uygulamalarından çözmek için senin niyet sen Veri olarak Eylem olarak ACTION_SENDTO ve mailto belirtmeniz gerekir.

private void sendEmail(){

    Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
    emailIntent.setData(Uri.parse("mailto:" + "recipient@example.com")); 
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, "My email's subject");
    emailIntent.putExtra(Intent.EXTRA_TEXT, "My email's body");

    try {
        startActivity(Intent.createChooser(emailIntent, "Send email using..."));
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(Activity.this, "No email clients installed.", Toast.LENGTH_SHORT).show();
    }

}

23

Android dokümantasyon açıkladığı gibi basit kod satırları ile bu sorunu çözdü.

( https://developer.android.com/guide/components/intents-common.html#Email )

En önemlisi bayrak: öyle, ACTION_SENDTOdeğilACTION_SEND

Diğer önemli çizgi ise

intent.setData(Uri.parse("mailto:")); ***// only email apps should handle this***

Boş göndermek arada, eğer Extra, if()sonunda çalışmaz ve uygulama e-posta istemcisi başlatmak olmaz.

Android belgelerine göre. Amacınızın yalnızca bir e-posta uygulaması (ve diğer kısa mesajlar veya sosyal uygulamalar değil) tarafından ele alınmasını istiyorsanız, ACTION_SENDTOişlemi kullanın ve " mailto:" veri düzenini ekleyin . Örneğin:

public void composeEmail(String[] addresses, String subject) {
    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);
    }
}

21

Android Beam ve Bluetooth gibi e-posta istemcileri olmayan uygulamaları kullanma .setType("message/rfc822")veya ACTION_SENDeşleştirme gibi görünüyor .

Kullanılması ACTION_SENDTOve mailto:URI mükemmel iş gibi görünüyor ve geliştirici belgelerinde önerilir . Ancak, bunu resmi emülatörlerde yaparsanız ve ayarlanmış herhangi bir e-posta hesabı yoksa (veya posta istemcisi yoksa), aşağıdaki hatayı alırsınız:

Desteklenmeyen eylem

Bu işlem şu anda desteklenmiyor.

Aşağıda gösterildiği gibi:

Desteklenmeyen eylem: Bu işlem şu anda desteklenmiyor.

Emülatörlerin com.android.fallback.Fallback, yukarıdaki mesajı görüntüleyen bir etkinliğin amacını çözdüğü ortaya çıkıyor . Görünüşe göre bu tasarım gereğidir.

Uygulamanızın resmi emülatörlerde de düzgün çalışması için bunu atlatmasını istiyorsanız, e-postayı göndermeye çalışmadan önce bunu kontrol edebilirsiniz:

private void sendEmail() {
    Intent intent = new Intent(Intent.ACTION_SENDTO)
        .setData(new Uri.Builder().scheme("mailto").build())
        .putExtra(Intent.EXTRA_EMAIL, new String[]{ "John Smith <johnsmith@yourdomain.com>" })
        .putExtra(Intent.EXTRA_SUBJECT, "Email subject")
        .putExtra(Intent.EXTRA_TEXT, "Email body")
    ;

    ComponentName emailApp = intent.resolveActivity(getPackageManager());
    ComponentName unsupportedAction = ComponentName.unflattenFromString("com.android.fallback/.Fallback");
    if (emailApp != null && !emailApp.equals(unsupportedAction))
        try {
            // Needed to customise the chooser dialog title since it might default to "Share with"
            // Note that the chooser will still be skipped if only one app is matched
            Intent chooser = Intent.createChooser(intent, "Send email with");
            startActivity(chooser);
            return;
        }
        catch (ActivityNotFoundException ignored) {
        }

    Toast
        .makeText(this, "Couldn't find an email app and account", Toast.LENGTH_LONG)
        .show();
}

Geliştirici belgelerinde daha fazla bilgi bulabilirsiniz .


13

E-posta gönderme, yapılandırma gerektirmeyen Intents ile yapılabilir. Ancak daha sonra kullanıcı etkileşimi gerektirecek ve düzen biraz kısıtlanacak.

Kullanıcı etkileşimi olmadan daha karmaşık bir e-posta oluşturmak ve göndermek kendi istemcinizi oluşturmayı gerektirir. İlk şey, e-posta için Sun Java API'sının kullanılamamasıdır. E-posta oluşturmak için Apache Mime4j kütüphanesinden yararlanarak başarılı oldum. Hepsi nilvec'teki dokümanlara dayanmaktadır .


6

İşte android cihazda posta uygulamasını açan ve oluşturan postada To address ve Subject ile otomatik olarak doldurulan örnek çalışma kodu .

protected void sendEmail() {
    Intent intent = new Intent(Intent.ACTION_SENDTO);
    intent.setData(Uri.parse("mailto:feedback@gmail.com"));
    intent.putExtra(Intent.EXTRA_SUBJECT, "Feedback");
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}

Teşekkürler. @Avi Parshan'ın bir çözümü ile karşılaştırıldığında, bir e-posta belirlediniz setData()ve Avi devreye giriyor putExtra(). Her iki varyant da çalışıyor. Ancak setDatasadece kaldırır ve kullanırsanız intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"hi@example.com"});, bir ActivityNotFoundException.
CoolMind

5

Uygulamalarımda aşağıdaki kodu kullanıyorum. Bu, Gmail gibi tam olarak e-posta istemcisi uygulamalarını gösterir.

    Intent contactIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", getString(R.string.email_to), null));
    contactIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.email_subject));
    startActivity(Intent.createChooser(contactIntent, getString(R.string.email_chooser)));

5

Bu size yalnızca e-posta istemcilerini gösterecektir (bilinmeyen bir nedenden ötürü PayPal'ın yanı sıra)

 public void composeEmail() {

    Intent intent = new Intent(Intent.ACTION_SENDTO);
    intent.setData(Uri.parse("mailto:"));
    intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"hi@example.com"});
    intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
    intent.putExtra(Intent.EXTRA_TEXT, "Body");
    try {
        startActivity(Intent.createChooser(intent, "Send mail..."));
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(MainActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
    }
}

1
Güzel çözüm! Birçok uygun olmayan uygulamadan kaçınır (çoğunlukla "Paylaş" olarak kullanılır). İstisnaya intent.type = "message/rfc822"; intent.type = "text/html";yol açacağı için buraya eklemeyin .
CoolMind

3

Ben böyle yaptım. Güzel ve basit.

String emailUrl = "mailto:email@example.com?subject=Subject Text&body=Body Text";
        Intent request = new Intent(Intent.ACTION_VIEW);
        request.setData(Uri.parse(emailUrl));
        startActivity(request);

3

Bu işlev ilk önce e-posta göndermek için niyet gmail'i doğrudan yönlendirir, eğer gmail bulunmazsa niyet seçiciyi teşvik edin. Bu işlevi birçok ticari uygulamada kullandım ve iyi çalışıyor. Size yardımcı olacağını umuyoruz:

public static void sentEmail(Context mContext, String[] addresses, String subject, String body) {

    try {
        Intent sendIntentGmail = new Intent(Intent.ACTION_VIEW);
        sendIntentGmail.setType("plain/text");
        sendIntentGmail.setData(Uri.parse(TextUtils.join(",", addresses)));
        sendIntentGmail.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
        sendIntentGmail.putExtra(Intent.EXTRA_EMAIL, addresses);
        if (subject != null) sendIntentGmail.putExtra(Intent.EXTRA_SUBJECT, subject);
        if (body != null) sendIntentGmail.putExtra(Intent.EXTRA_TEXT, body);
        mContext.startActivity(sendIntentGmail);
    } catch (Exception e) {
        //When Gmail App is not installed or disable
        Intent sendIntentIfGmailFail = new Intent(Intent.ACTION_SEND);
        sendIntentIfGmailFail.setType("*/*");
        sendIntentIfGmailFail.putExtra(Intent.EXTRA_EMAIL, addresses);
        if (subject != null) sendIntentIfGmailFail.putExtra(Intent.EXTRA_SUBJECT, subject);
        if (body != null) sendIntentIfGmailFail.putExtra(Intent.EXTRA_TEXT, body);
        if (sendIntentIfGmailFail.resolveActivity(mContext.getPackageManager()) != null) {
            mContext.startActivity(sendIntentIfGmailFail);
        }
    }
}

1
Çok teşekkürler. Hayatımı
kurtar

2

basit bunu dene

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    buttonSend = (Button) findViewById(R.id.buttonSend);
    textTo = (EditText) findViewById(R.id.editTextTo);
    textSubject = (EditText) findViewById(R.id.editTextSubject);
    textMessage = (EditText) findViewById(R.id.editTextMessage);

    buttonSend.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            String to = textTo.getText().toString();
            String subject = textSubject.getText().toString();
            String message = textMessage.getText().toString();

            Intent email = new Intent(Intent.ACTION_SEND);
            email.putExtra(Intent.EXTRA_EMAIL, new String[] { to });
            // email.putExtra(Intent.EXTRA_CC, new String[]{ to});
            // email.putExtra(Intent.EXTRA_BCC, new String[]{to});
            email.putExtra(Intent.EXTRA_SUBJECT, subject);
            email.putExtra(Intent.EXTRA_TEXT, message);

            // need this to prompts email client only
            email.setType("message/rfc822");

            startActivity(Intent.createChooser(email, "Choose an Email client :"));

        }
    });
}

3
Bunu yayınladığınızda var olan cevaplardan nasıl daha iyi? Bir etkinliğe sarılmış kabul edilen cevabın bir kopyası gibi görünüyor.
Sam

2

Diğer çözüm

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
emailIntent.setType("plain/text");
emailIntent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"someone@gmail.com"});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Yo");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Hi");
startActivity(emailIntent);

Android cihazların çoğunun zaten GMail uygulaması yüklü olduğu varsayılarak.


@PedroVarela istisna bulunamadı aktivite her zaman kontrol edebilirsiniz.
silentsudo

1
Evet yapabiliriz. Ama çözümünüz doğru değil. Android belgeleri, yalnızca amaç seçicide posta uygulamalarını göstermek için ne yapmanız gerektiğini açıkça belirtir. "Android cihazının çoğunda zaten Gmail uygulaması yüklü olduğu varsayılarak" yazdınız; Köklü bir cihazsa ve kullanıcı Gmail istemcisini silerse ne olur? Kendi e-posta uygulamanızı oluşturduğunuzu varsayalım? Bir kullanıcı e-posta gönderecekse uygulamanız bu listede olmayacaktır. Gmail paket adını değiştirirse ne olur? Uygulamanızı güncelleyecek misiniz?
Pedro Varela

2

E-posta göndermek için bunu kullanın ...

boolean success = EmailIntentBuilder.from(activity)
    .to("support@example.org")
    .cc("developer@example.org")
    .subject("Error report")
    .body(buildErrorReport())
    .start();

build gradle kullanın:

compile 'de.cketti.mailto:email-intent-builder:1.0.0'

2

Bu kodu, varsayılan posta uygulaması oluşturma bölümünü doğrudan başlatarak posta göndermek için kullandım.

    Intent i = new Intent(Intent.ACTION_SENDTO);
    i.setType("message/rfc822"); 
    i.setData(Uri.parse("mailto:"));
    i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"test@gmail.com"});
    i.putExtra(Intent.EXTRA_SUBJECT, "Subject");
    i.putExtra(Intent.EXTRA_TEXT   , "body of email");
    try {
        startActivity(Intent.createChooser(i, "Send mail..."));
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
    }

1

Bu yöntem benim için işe yarıyor. Gmail uygulamasını (yüklüyse) açar ve mailto'yu ayarlar.

public void openGmail(Activity activity) {
    Intent emailIntent = new Intent(Intent.ACTION_VIEW);
    emailIntent.setType("text/plain");
    emailIntent.setType("message/rfc822");
    emailIntent.setData(Uri.parse("mailto:"+activity.getString(R.string.mail_to)));
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, activity.getString(R.string.app_name) + " - info ");
    final PackageManager pm = activity.getPackageManager();
    final List<ResolveInfo> matches = pm.queryIntentActivities(emailIntent, 0);
    ResolveInfo best = null;
    for (final ResolveInfo info : matches)
        if (info.activityInfo.packageName.endsWith(".gm") || info.activityInfo.name.toLowerCase().contains("gmail"))
            best = info;
    if (best != null)
        emailIntent.setClassName(best.activityInfo.packageName, best.activityInfo.name);
    activity.startActivity(emailIntent);
}

1
/**
 * Will start the chosen Email app
 *
 * @param context    current component context.
 * @param emails     Emails you would like to send to.
 * @param subject    The subject that will be used in the Email app.
 * @param forceGmail True - if you want to open Gmail app, False otherwise. If the Gmail
 *                   app is not installed on this device a chooser will be shown.
 */
public static void sendEmail(Context context, String[] emails, String subject, boolean forceGmail) {

    Intent i = new Intent(Intent.ACTION_SENDTO);
    i.setData(Uri.parse("mailto:"));
    i.putExtra(Intent.EXTRA_EMAIL, emails);
    i.putExtra(Intent.EXTRA_SUBJECT, subject);
    if (forceGmail && isPackageInstalled(context, "com.google.android.gm")) {
        i.setPackage("com.google.android.gm");
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    } else {
        try {
            context.startActivity(Intent.createChooser(i, "Send mail..."));
        } catch (ActivityNotFoundException e) {
            Toast.makeText(context, "No email app is installed on your device...", Toast.LENGTH_SHORT).show();
        }
    }
}

/**
 * Check if the given app is installed on this devuice.
 *
 * @param context     current component context.
 * @param packageName The package name you would like to check.
 * @return True if this package exist, otherwise False.
 */
public static boolean isPackageInstalled(@NonNull Context context, @NonNull String packageName) {
    PackageManager pm = context.getPackageManager();
    if (pm != null) {
        try {
            pm.getPackageInfo(packageName, 0);
            return true;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
    }
    return false;
}

1
 Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
            "mailto","ebgsoldier@gmail.com", null));
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Forgot Password");
    emailIntent.putExtra(Intent.EXTRA_TEXT, "Write your Pubg user name or Phone Number");
    startActivity(Intent.createChooser(emailIntent, "Send email..."));**strong text**

1

Bunu dene:

String mailto = "mailto:bob@example.org" +
    "?cc=" + "alice@example.com" +
    "&subject=" + Uri.encode(subject) +
    "&body=" + Uri.encode(bodyText);

Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
emailIntent.setData(Uri.parse(mailto));

try {
    startActivity(emailIntent);
} catch (ActivityNotFoundException e) {
    //TODO: Handle case where no email app is available
}

Yukarıdaki kod, gönderilmeye hazır e-posta ile önceden doldurulmuş kullanıcıların favori e-posta istemcisini açacaktır.

Kaynak

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.