我无法使用android中的电子邮件意图从assets文件夹附加excel文件。任何人都可以建议下面的代码有什么问题。电子邮件会打开,但会显示“无法附加文件”的消息。
File xlsFile = new File("assets/test.xlsx");
Uri path = Uri.fromFile(xlsFile);
Intent intent1 = new Intent(Intent.ACTION_SEND);
intent1.setType("application/excel");
intent1.putExtra(Intent.EXTRA_SUBJECT, "Excel File for test");
intent1.putExtra(Intent.EXTRA_TEXT,"");
intent1.putExtra(Intent.EXTRA_STREAM, path);
startActivity(Intent.createChooser(intent1, "Send email..."));
答案 0 :(得分:2)
首先,assets/test.xlsx
不是Android设备上的文件。它是一种资产,打包在您的APK中。因此,new File("assets/test.xlsx")
。
其次,即使该路径中存在文件,第三方电子邮件应用也无法读取它。
或者:
将文件复制到外部存储空间,然后为其创建Uri
并在Intent
或
将文件复制到内部存储空间use FileProvider
to serve it或
使用my StreamProvider
直接从资源