2012-03-14 72 views
7

Tôi đang cố gắng mở email gửi biểu mẫu Gmail trực tiếp bằng cách nhấp vào nút nhưng điều này luôn hiển thị danh sách tùy chọn gửi email.Gửi email bằng Gmail trong android

tôi làm điều này để mở hình thức GMail:

  Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
      String[] recipients = new String[]{"" , "" ,}; 
      emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients); 
      emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "This is my text"); 
      emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, ""); 
      emailIntent.setType("message/rfc822"); 
      startActivity(Intent.createChooser(emailIntent, "Send Email")); 

nhưng điều này không được mở dưới dạng GMail. Tôi có thể làm gì để mở biểu mẫu GMail, vui lòng trợ giúp.

Có cách nào để thực hiện việc này không?

+1

Lý do bạn đang nhìn thấy một danh sách các tùy chọn là bởi vì bạn đang sử dụng 'Intent.createChooser (...)'. Trong trường hợp của bạn, điều này sẽ luôn tạo một danh sách các ứng dụng có thể xử lý 'ACTION_SEND' cho mime-type' message/rfc822'. Không có cách nào nói rõ ràng để sử dụng Gmail. Bạn có thể thử nó mà không có 'createChooser (...)' và, (nếu bạn may mắn) người dùng có thể đã đặt GMail làm ứng dụng thư mặc định của họ. NẾU bạn may mắn. Nếu họ thiết lập mặc định của họ để anothe ứng dụng thư nó sẽ sử dụng thay vào đó. Tôi không thực sự chắc chắn rằng nó có thể làm những gì bạn muốn. Chắc chắn không phải với 'createChooser (...)'. – Squonk

Trả lời

16

sử dụng một cái gì đó trên đường

public void sendGmail(Activity activity, String subject, String text) { 
    Intent gmailIntent = new Intent(); 
    gmailIntent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail"); 
    gmailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
    gmailIntent.putExtra(android.content.Intent.EXTRA_TEXT, text); 
    try { 
     activity.startActivity(gmailIntent); 
    } catch(ActivityNotFoundException ex) { 
     // handle error 
    } 
} 
+0

nó cung cấp cho 'null pointer exception' trên dòng' activity.startActivity (gmailIntent); '. – Pari

+0

đảm bảo u đang truyền đối tượng hoạt động hiện tại, bạn cũng có thể thêm phương thức này vào trong lớp hoạt động của bạn và gọi startActivity (gmailIntent); trực tiếp – mkso

+0

nhờ bây giờ điều này làm việc tốt. tôi đang đi qua 'getParent()' trước nó và điều này đã làm hỏng ứng dụng của tôi. – Pari

Các vấn đề liên quan