在android中附加电子邮件的txt文件

时间:2017-03-28 06:26:56

标签: android

我想在电子邮件中附加一个.txt文件,以便在Android中发送。该文件位于/data/data/com.PackageName/files/。我正在尝试;

 private void Share(String file_name) {
        try {
            String filelocation = "/data/data/com.PackageName/files/awais.txt";
            Intent intent = new Intent(Intent.ACTION_SENDTO);
            intent.setType("text/plain");
            String message="File to be shared is " + file_name + ".";
            intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
            intent.putExtra(Intent.EXTRA_STREAM, Uri.parse( "file://"+filelocation));
            intent.putExtra(Intent.EXTRA_TEXT, message);
            intent.setData(Uri.parse("mailto:xyz@gmail.com"));
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            startActivity(intent);
        } catch(Exception e)  {
            System.out.println("is exception raises during sending mail"+e);
        }

}

我已将AndroidMenifest中的权限添加为

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>  

但Android会出错。

  

附件的许可被拒绝。

有关更多说明,请参见下图。

enter image description here

任何帮助?

1 个答案:

答案 0 :(得分:0)

您正试图让电子邮件应用从您应用的私有内存中读取文件,只有您的应用才能访问该文件。这就是电子邮件应用程序抱怨的原因。

您至少有两种解决方案。

首先,您可以将文件放在每个应用都可以访问的外部存储上。

其次,您可以将文件保留在私有内存中,并使用FileProvider来提供文件。