我想在电子邮件中附加一个.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会出错。
附件的许可被拒绝。
有关更多说明,请参见下图。
任何帮助?
答案 0 :(得分:0)
您正试图让电子邮件应用从您应用的私有内存中读取文件,只有您的应用才能访问该文件。这就是电子邮件应用程序抱怨的原因。
您至少有两种解决方案。
首先,您可以将文件放在每个应用都可以访问的外部存储上。
其次,您可以将文件保留在私有内存中,并使用FileProvider
来提供文件。