2012-02-01 22 views
75

Tôi đang cố gắng sử dụng một để gửi email từ ứng dụng của tôi nhưng trường Đến của email sẽ không điền. Nếu tôi thêm mã để điền vào chủ đề hoặc văn bản, chúng hoạt động tốt. Chỉ trường To sẽ không điền.Intent.EXTRA_EMAIL không điền vào trường Đến

Tôi cũng đã thử thay đổi loại thành "text/plain" và "text/html" nhưng tôi nhận được cùng một vấn đề. Ai có thể giúp tôi không?

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

Các ứng dụng email Tôi đang cố gắng để sử dụng là Gmail

Trả lời

186

Tôi nghĩ rằng bạn đang không đi qua recipient như array of string

nó nên được như thế

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

Android ... tại sao bạn quá thảm hại? –

+2

hahaha, bạn khiến tôi cười 1 triệu @BugsHappen .. Lý do: Nguồn mở nhưng tài liệu không đạt yêu cầu 100%, nhà sản xuất thiết bị sửa đổi theo nhu cầu của họ (hầu hết các thiết bị đều rẻ và vô dụng), nhà phát triển không đọc .android.com ". – MKJParekh

+4

Cũng đảm bảo rằng bạn * KHÔNG * đang làm 'intent.putExtra (Intent.EXTRA_EMAIL, list.toArray())' ** nó KHÔNG LÀM VIỆC vì list.toArray() tạo ra Object [] và không phải 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

Sử dụng này

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

``} 

này sẽ làm việc :)
Đây là những gì tài liệu android nói về Intent.Extra_Email
-A chuỗi mảng của tất cả các "To" địa chỉ email của người nhận.
Vì vậy, bạn nên ăn chuỗi đúng Bạn có thể đọc thêm ở đây
http://developer.android.com/guide/components/intents-common.html#Email và đây http://developer.android.com/guide/topics/resources/string-resource.html Hoặc sử dụng các hành động ACTION_SENDTO và bao gồm các "mailto:" chương trình dữ liệu. Ví dụ:

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); 
} 
Các vấn đề liên quan