2015-05-18 2 views
2

Я пытаюсь отправить электронную почту из своего приложения, используя стандартное приложение gmail. Но я все время выбираю выбор. Как открыть стандартное приложение Gmail сразу без выбора? Мне не нужен выбор с любым приложением, которое может отправлять электронную почту. Мне нужен только GMAIL. Спасибо! Вот мой код.Отправка электронной почты с использованием стандартного приложения gmail без выбора

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setType("message/rfc822"); 
intent.setClassName("com.google.android.gm", "com.google.android.gm.ConversationListActivity"); 
intent.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"}); 
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject"); 
intent.putExtra(Intent.EXTRA_TEXT , "Text"); 
try { 
    startActivity(intent); 
} catch (android.content.ActivityNotFoundException ex) { 
    Toast.makeText(getApplicationContext(), "There are no email clients installed.", Toast.LENGTH_SHORT).show(); 
} 
+0

возможно дубликат [отправить электронную почту с помощью Gmail] (http://stackoverflow.com/questions/8284706/send-email-via-gmail) –

+0

это может быть дубликатом этого вопроса: HTTP://stackoverflow.com/questions/8284706/send-email-via-gmail –

+3

«Мне не нужен выбор с любым приложением, которое может отправлять электронную почту. Мне нужен только GMAIL» - обратите внимание, что не каждый пользователь Android использует Gmail. – CommonsWare

ответ

3

Вы можете попробовать этот код.

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[]{"[email protected]"}); 
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Yo"); 
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Hi"); 
    startActivity(emailIntent); 
0

Вы должны использовать ACTION.SENDTO намерение, если вы хотите использовать GMail приложение , а не Chooser. Вы также добавите дополнительные функции в текст URI , а не о намерениях.

Intent send = new Intent(Intent.ACTION_SENDTO); 
String uriText = "mailto:" + Uri.encode("[email protected]") + 
     "?subject=" + Uri.encode("the subject") + 
     "&body=" + Uri.encode("the body of the message"); 
Uri uri = Uri.parse(uriText); 

send.setData(uri); 

startActivity(Intent.createChooser(send, "Send Email...")) 
0

Пожалуйста, проверьте этот вопрос, он будет помогает вам в основном третий ответ из-за этой записки, важно отметить, что если вы собираетесь использовать этот код, убедитесь, что пользователь имеет пакет «com.google.android.gm», установленный на их устройстве. На любом языке убедитесь, что вы проверяете значение null для определенных строк и инициализаций.

Intent URI to launch Gmail App

Смежные вопросы