在Android Wear 2.0中将文件附加到电子邮件

时间:2017-08-06 23:48:34

标签: android android-studio android-intent wear-os

在我的应用程序中,我能够在内部或外部存储中写入和读取文件。两者都用于阅读/写作。但是,我无法将文件从任何地方附加到我导致通过我的应用程序发送(通过意图)的电子邮件中。

我已经在应用中的清单和运行时请求了外部存储权限,并且我已经验证我拥有它们(再一次,我能够从我的应用中读取/写入) 。)实际上的所有内容都正在运行。我的电子邮件客户端启动时主题和电子邮件正文已正确填充,并显示我的文件已附加(我通过正确的文件名和所有内容获取回形针图标。)但是,当发送电子邮件时,附件将被删除。 / 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?");
            }

1 个答案:

答案 0 :(得分:0)

美好的一天! 很抱歉,但是此时Wear 2.0既不支持启动其他磨损应用程序的Intent机制,也不支持通过3-party聚会电子邮件客户端发送电子邮件。 我花了3个星期的时间来搜索解决方案而没有找到它。