我正在使用以下代码通过电子邮件发送我的应用程序反馈。在构建版本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
我建议像这样将所有内容放入意图数据中
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。