Android 10+pdf无法发送到Gmail



我的手机上有文件。我无法将pdf文件发送到Gmail,为了测试,我创建了一个包含png和pdf文件的列表,这些文件位于同一文件夹中。但是,png文件被发送到Gmail,pdf文件没有被附加。无法理解为什么会发生

我的代码:

Intent emailIntent = new Intent(ACTION_SEND_MULTIPLE);

String theme = "Test";
emailIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
emailIntent.setType(" message/rfc822"); 
String to[] = {sendTo};
emailIntent.putExtra(EXTRA_EMAIL, to);
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
emailIntent.putExtra(EXTRA_SUBJECT, theme);
emailIntent.putExtra(EXTRA_TEXT, context.getResources().getString(R.string.text_email_message_body));
try {
((Activity) context).startActivity(Intent.createChooser(emailIntent, "Choose an Email client:"));
}catch (Exception e){
}

UPD:

此代码适用于android 9和8

UPD:

我添加了这样的文件:

ArrayList<Uri> uris = new ArrayList<>();
File fileIn1 = new File("/storage/emulated/0/TestApp/TestFolder/201123192703_1.png");
Uri u1 = Uri.fromFile(fileIn1);
File fileIn = new File("/storage/emulated/0/TestApp/TestFolder/201124171209_1.pdf");
Uri u = Uri.fromFile(fileIn);
File fileIn2 = new File("/storage/emulated/0/TestApp/TestFolder/201124171209_2.pdf");
Uri u2 = Uri.fromFile(fileIn2);
File fileIn3 = new File("/storage/emulated/0/TestApp/TestFolder/test.pdf");
Uri u3 = Uri.fromFile(fileIn3);
uris.add(u);
uris.add(u2);
uris.add(u1);
uris.add(u3);

file:Uri值自Android 7.0以来一直被禁止;作用域存储";您在Android 10+中看到的限制。一般来说,当你尝试在Intent中使用file:Uri时,你会遇到FileUriExposedException崩溃——我不确定你为什么不在这里崩溃。总的来说,当将Uri放入Intent时,需要使用content:方案,而为文件获取其中一个方案的典型方法是通过FileProvidergetUriForFile()

emailIntent.setType(" message/rfc822");替换为emailIntent.setType("application/pdf")

相关内容

  • 没有找到相关文章

最新更新