2013-04-16 24 views
6

Chúng ta có thể mở hộp thoại phần sử dụng ACTION_SEND để chia sẻ văn bảnSharing Text File sử dụng ACTION_SEND

 Intent sendIntent = new Intent(); 
       sendIntent.setAction(Intent.ACTION_SEND); 
       sendIntent.putExtra(Intent.EXTRA_TEXT, "Download Link: Android play store link"); 
       sendIntent.setType("text/plain"); 
       startActivity(Intent.createChooser(sendIntent, "Share This App")); 

Làm thế nào tôi có thể sử dụng ACTION_SEND để chia sẻ một tập tin văn bản.

Tôi đọc http://developer.android.com/training/sharing/send.html nhưng không thể tìm cách chia sẻ tệp văn bản.

Trả lời

9

Sử dụng dòng sau.

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
    emailIntent.setType("*/*"); 
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {"[email protected]"}); 
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, 
    "Test Subject"); 
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, 
    "go on read the emails");  
    emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromfile(new File(yourtextfilepath)); 
    startActivity(Intent.createChooser(emailIntent, "Send mail...")); 

Đảm bảo rằng đường dẫn tệp văn bản của bạn phải từ thẻ nhớ ngoài. Hành động gửi sẽ không chấp nhận các tệp từ bộ nhớ trong.

Hy vọng điều này sẽ giúp bạn.

+1

Điều này sẽ không hoạt động trên các cấu hình khác nhau. Bạn nên chia sẻ nội dung với một ContentProvider thay vì http://developer.android.com/training/enterprise/app-compatibility.html#sharing_files – rds

+1

... Uri.fromfile (... cú pháp là sai, thay đổi nó thành Uri.fromFile ( –

+0

Đây là cách sạch nhất và đơn giản nhất mà tôi tìm thấy sau nhiều lần xuất hiện và các ví dụ khác. Trường hợp của tôi: Ứng dụng của tôi tạo tệp .csv và lưu nó trong thư mục TẢI XUỐNG, và tôi muốn chia sẻ nó sau khi tệp được tạo mà không cần sử dụng FileProvider. –

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