在我的应用程序中,我能够在内部或外部存储中写入和读取文件。两者都用于阅读/写作。但是,我无法将文件从任何地方附加到我导致通过我的应用程序发送(通过意图)的电子邮件中。
我已经在应用中的清单和运行时请求了外部存储权限,并且我已经验证我拥有它们(再一次,我能够从我的应用中读取/写入) 。)实际上的所有内容都正在运行。我的电子邮件客户端启动时主题和电子邮件正文已正确填充,并显示我的文件已附加(我通过正确的文件名和所有内容获取回形针图标。)但是,当发送电子邮件时,附件将被删除。 / p>
我担心这可能只是Google / Android拒绝真正允许我将附件从一个应用程序传递到另一个应用程序。
有人可以帮忙吗?
以下是我设置电子邮件附件的代码:
String[] TO = {"myemail@gmail.com"};
String[] CC = {""};
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");
emailIntent.putExtra(Intent.EXTRA_EMAIL, TO);
emailIntent.putExtra(Intent.EXTRA_CC, CC);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Something cool");
File attachment = new File(root, "TestFile2.txt");
Uri fileUri;
if (!attachment.exists() || !attachment.canRead()) {
Log.d("MyMessages", "Could not find file to attach.");
} else {
fileUri = Uri.parse("file://" + attachment.getAbsolutePath());
emailIntent.putExtra(Intent.EXTRA_STREAM, fileUri);
emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
emailIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
emailIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
emailIntent.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
Log.d("MyMessages", "I think I attached a file...");
}
emailIntent.putExtra(Intent.EXTRA_TEXT, "Here you go...\n");
try {
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
finish();
Log.d("MyMessages", "Email sent.");
} catch (android.content.ActivityNotFoundException ex) {
Log.d("MyMessages", "Email not sent. Client installed?");
}
答案 0 :(得分:0)
美好的一天! 很抱歉,但是此时Wear 2.0既不支持启动其他磨损应用程序的Intent机制,也不支持通过3-party聚会电子邮件客户端发送电子邮件。 我花了3个星期的时间来搜索解决方案而没有找到它。