2012-09-05 7 views
7

Chcę otworzyć domyślnego klienta poczty e-mail, zamiast pokazywać opcje. Próbowałem, ale nie dostaję, proszę, każdy może mi pomóc.Android - sposób bezpośredniego otwierania klienta poczty e-mail

Użyłem poniższy kod:

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 

     emailIntent.setType("text/html"); 
     emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "My Allergy Journal");  
     emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml("<small>"+sb.toString()+"</small>"));         
     startActivity(Intent.createChooser(emailIntent, "Email:")); 

To pokaż opcje

enter image description here

Ale chcę otworzyć następnie domyślny klient poczty bezpośrednio.

enter image description here

Odpowiedz

8

Możesz użyć następującego kodu, aby otworzyć dowolne intencje, np. Gmail, facebook, e-mail itp. Prosty w typie używanym w moim kodzie przekazać "gmail", jeśli chcesz otworzyć Gmaila, przekazać "twarz", jeśli chcesz otworzyć facebook

Intent intent = new Intent(android.content.Intent.ACTION_SEND); 
intent.setType("text/html"); 
List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(intent, 0); 

if (!resInfo.isEmpty()) 
{ 
    for (ResolveInfo info : resInfo) 
    { 
    if (info.activityInfo.packageName.toLowerCase().contains(type) || info.activityInfo.name.toLowerCase().contains(type)) 
    { 
      intent.putExtra(android.content.Intent.EXTRA_TEXT, htmlBody); 
      intent.setPackage(info.activityInfo.packageName); 
      startActivity(Intent.createChooser(intent, getResources().getString(R.string.share_send_text))); 
     } 
} 
+0

Chcę otworzyć klienta poczty e-mail dla systemu Android. W tym celu jaki ciąg użyłem zamiast typu? – naresh

+0

po prostu użyj "e-mail" w polu typu ........ daj mi znać, czy to działa czy nie – AndroidDev

+0

dzięki to działa – naresh

14

Rama String w formacie String URI="mailto:?subject=" + subject + "&body=" + body;

i

Intent intent = new Intent(Intent.ACTION_VIEW); 
Uri data = Uri.parse(URI); 
intent.setData(data); 
startActivity(intent); 

To otworzy się domyślny program poczty e-mail wybrany przez użytkownika.

Linkify robi to w ten sposób. Sprawdź it's source code, jeśli chcesz.

+0

To po prostu działa dla mnie. – Bwire

+0

działa jak urok !!! –

Powiązane problemy