2012-02-01 3 views
75

Я пытаюсь использовать для отправки электронной почты с моего приложения, но поле Кому в поле не будет заполнено. Если я добавлю код для заполнения темы или текста, они работают нормально. Просто поле Кому не заполняется.Intent.EXTRA_EMAIL не заполняет поле To

Я также попытался изменить тип на «text/plain» и «text/html», но у меня такая же проблема. Может ли кто-нибудь помочь?

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...")); } 

Клиент электронной почты Я пытаюсь использовать это Gmail

ответ

186

Я думаю, вы не проходя recipient, как array of string

она должна быть как

emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] { "[email protected]" }); 
+9

Android ... почему вы так жалок? –

+2

hahaha, вы заставили меня смеяться +1 млн. @BugsHappen .. Причины: с открытым исходным кодом, но документация не удовлетворяет на 100%, производители устройств изменяют свои потребности (большинство устройств дешевы и бесполезны), разработчики не читают «разработчик .android.com». – MKJParekh

+4

Также убедитесь, что вы * NOT * выполняете 'intent.putExtra (Intent.EXTRA_EMAIL, list.toArray())' ** он НЕ РАБОТАЕТ, поскольку list.toArray() создает Object [], а не String [] * * – kape123

1
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:")); 
} 
4

использования это

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...")); 

``} 

Это будет работать :)
Это то, что андроид документация говорит о Intent.Extra_Email
-A массиве строк все «» Адрес электронной почты получателей помощи.
Таким образом, вы должны кормить строку правильно Вы можете прочитать здесь
http://developer.android.com/guide/components/intents-common.html#Email и здесь http://developer.android.com/guide/topics/resources/string-resource.html Или использовать действие ACTION_SENDTO и включают «MailTo:» схему данных. Например:

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); 
} 
Смежные вопросы