开发者社区> 问答> 正文

使用Android Intent打开电子邮件

我正在使用以下代码通过电子邮件发送我的应用程序反馈。在构建版本28之前,它工作正常。但是在Android 29中,打开电子邮件应用程序时我没有收到主题和正文,它仅显示到电子邮件地址,而不显示其他文本。我的代码如下

String appName = getResources().getString(R.string.app_name);
                        int versionCode = BuildConfig.VERSION_CODE;
                        String versionName = BuildConfig.VERSION_NAME;
                        String deviceInfo = "Device Info:";
                        deviceInfo += "\n OS Version: " + System.getProperty("os.version") + "(" + android.os.Build.VERSION.INCREMENTAL + ")";
                        deviceInfo += "\n OS API Level: " + android.os.Build.VERSION.SDK_INT;
                        deviceInfo += "\n Device: " + android.os.Build.DEVICE;
                        deviceInfo += "\n Model (and Product): " + android.os.Build.MODEL + " (" + android.os.Build.PRODUCT + ")";
                        deviceInfo += "\n App Version Code: " + versionCode;
                        deviceInfo += "\n App Version Name: " + versionName;
                        Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", "myemail@gmail.com", null));
                        emailIntent.putExtra(Intent.EXTRA_SUBJECT, appName + " Problem");
                        emailIntent.putExtra(Intent.EXTRA_TEXT, "write your issue here \n\n\n______________________________\n\n" + deviceInfo);

                        startActivity(Intent.createChooser(emailIntent, "Send email..."));

我在logcat中没有收到任何错误。让我知道是否有人可以帮助我解决问题。谢谢!

问题来源:Stack Overflow

展开
收起
montos 2020-03-24 16:47:44 435 0
1 条回答
写回答
取消 提交回答
  • 我建议像这样将所有内容放入意图数据中

    Intent emailIntent = new Intent(Intent.ACTION_SENDTO);
    String mailTo = "mailto:example@example.com" +
            "?cc=" + "" +
            "&subject=" + Uri.encode("Email subject") +
            "&body=" + Uri.encode("Email body");
    emailIntent.setData(Uri.parse(mailTo));
    
    // For result
    startActivityForResult(Intent.createChooser(emailIntent, "Send email"), 100);
    
    // Without result
    startActivity(Intent.createChooser(emailIntent, "Send email"));
    

    它可以正常工作,并且大多数(如果不是所有)电子邮件客户端都应该使用它。

    回答来源:Stack Overflow

    2020-03-24 16:48:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载