微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Android 11 中使用 Gmail 将文件附加到电子邮件时出错 - Android Studio

如何解决在 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" />

这些是我发送电子邮件生成 .txt 的类:

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 举报,一经查实,本站将立刻删除。