2010-09-23 34 views
10

Tôi đang sử dụng ý định gửi email có tệp đính kèm, nó hoạt động tốt, tôi muốn nhận kết quả ý định email này, tôi đã sử dụng startActivityforResult(), nhưng tôi không thể nhận được kết quả cho mục đích email, cách chúng tôi có thể sử dụng startActivityforResult() cho mục đích Email ?cách chúng tôi có thể sử dụng startActivityforResult() cho mục đích Email?

Cảm ơn tất cả

Trả lời

12

Bạn không thể, đây không phải là một phần của API. Nó trả về một khi bạn đã nhấn nút gửi ngay cả khi nó không được gửi

+0

tôi muốn xóa ảnh đính kèm trong sdcard sau khi gửi email, cách thực hiện tác vụ này, vui lòng cung cấp một số mẹo cho tôi ... – sivaraj

+0

Tôi không nghĩ rằng có bất kỳ mẹo nào để làm điều đó, Hoạt động email không gi có bất kỳ đầu mối nào khi email được gửi đi. – fedj

+0

@ok fedj, tôi muốn gửi email kèm theo hình ảnh, hình ảnh đó không được lưu trữ trong sdcard, làm cách nào tôi có thể đính kèm và gửi email cho người dùng? – sivaraj

-2

Bạn có thể loại, nhưng nó xấu xí và không thích hợp. Tôi sẽ làm việc để làm mịn điều này. Vấn đề chính: Sau khi email được gửi, bạn kết thúc ở một màn hình màu đen không có gì ngoài tiêu đề ứng dụng của bạn ở trên cùng.

Tôi sẽ thực hiện 'nhấn enter để tiếp tục' hoặc điều gì đó nếu tôi phải làm.

Dù sao: Đoạn đầu tiên từ lớp chính viết báo cáo vào sdcard, sau đó gọi hoạt động sẽ gửi email.

WriteReportToStorage(); 

Intent Emailreport = new Intent(bvsactivity.this, Emailreport.class); 
startActivityForResult(Emailreport,emailreport_ran); 

Tiếp theo, qua trong lớp emailreport chúng ta làm tiêu chuẩn mã email + tập tin đính kèm gửi:

public class Emailreport extends Activity { 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

final Intent email = new Intent(android.content.Intent.ACTION_SEND); 
     email.setType("text/html 

"); 
      email.putExtra(android.content.Intent.EXTRA_SUBJECT, "subject"); 
      email.putExtra(android.content.Intent.EXTRA_TEXT, "body"); 
      email.putExtra(android.content.Intent.EXTRA_STREAM, Uri.parse("file:/" +  Environment.getExternalStorageDirectory() + "//Report.html")); 
      startActivity(Intent.createChooser(email, "Email:")); 
     } 

Cuối cùng, trở lại trong lớp 'chính' của bạn, onactivityresult đó xóa các tập tin sdcard:

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // Actions based on which menu item we chose. 
     if (requestCode == emailreport_ran) {boolean deleted = reportfile.delete(); emailreport_ran = 1;} 
     } 
} 
+0

Điều này nhận được sự trở lại từ hoạt động, nhưng không xác nhận liệu email có được gửi hay không. Ngay cả khi nó đã bị hủy bỏ ngay lập tức. OP đặc biệt nói rằng anh/cô ấy đã làm điều đó, kiến ​​muốn nhận được một resultCode hợp lệ thay thế. – zeh

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