我创建了一个 svg 文件,我需要通过邮件发送它,但我做错了:
File file=new File(getFilesDir(), FILENAME);
Intent email = new Intent(Intent.ACTION_SEND);
if (file.exists()) {
email.putExtra(Intent.EXTRA_EMAIL, new String[]{etMail.getText().toString()});
email.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+file));
email.putExtra(Intent.EXTRA_SUBJECT, "Subject");
email.putExtra(Intent.EXTRA_TEXT, "text");
email.setType("message/rfc822");
// email.setType("*/*");
startActivity(Intent.createChooser(email, "Выберите email клиент :"));}
应用程序逐行崩溃
email.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+file));
有错误:
android.os.FileUriExposedException: file:///data/user/0/ru.test/files/file.svg 通过 ClipData.Item.getUri() 暴露在应用程序之外
从 API 24 开始(在我看来),禁止
Intent在 links 中使用类型 linksfile://,它们必须用FileProvider可以将链接file://转换为的特殊掩码content://这里的说明