如何解决在 Android 11 中使用 Gmail 将文件附加到电子邮件时出错 - Android Studio
我的程序发送一个带有 Intent 的 .txt 文档,它适用于任何 Android 版本,但在 Android 11 中,该文件不会附加在 Gmail 中,但在 Outlook 等其他应用程序中会附加,一旦 Gmail 打开,它会向我发送祝酒词消息“无法附加文件”,有解决方案吗? (注:我向用户请求权限,但我认为没有必要附加此代码)
Manifest 中的权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
String CARPETA_PRINCIPAL = "Folder/";
String CARPETA_DOCTXT = "Files";
String DIRECTORIO_TXT = CARPETA_PRINCIPAL + CARPETA_DOCTXT;
public void sendEmail() {
String nombre_completo = exportTxt();
if (!nombre_completo.equals("")){
Intent email = new Intent(Intent.ACTION_SENDTO);
email.setData(Uri.parse("mailto:"));
email.putExtra(Intent.EXTRA_SUBJECT,"Exportation File");
email.putExtra(Intent.EXTRA_TEXT,"Hello2");
File file = new File(nombre_completo);
email.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file));
startActivity(Intent.createChooser(email,"Send Email"));
} else {
Toast.makeText(this,"Something happen",Toast.LENGTH_LONG).show();
}
}
public String exportTxt(){
String fileName= "file.txt";
File folder = new File(Environment.getExternalStorageDirectory(),DIRECTORIO_TXT);
if (!folder.exists()) {
folder.mkdir();
}
nombre_completo = Environment.getExternalStorageDirectory() + File.separator + DIRECTORIO_TXT + File.separator + fileName;
File outputFile = new File(nombre_completo);
if (outputFile.exists()) {
outputFile.delete();
}
try {
FileWriter fileWriter = new FileWriter(outputFile);
BufferedWriter bw = new BufferedWriter(fileWriter);
bw.write("Hello");
bw.flush();
bw.close();
} catch (Exception e) {
Log.i("Error: ",String.valueOf(e));
}
return nombre_completo;
}
uri 是这样的,我认为是正确的:
/storage/emulated/0/Folder/Files/file.txt
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。