2015-05-05 106 views
1

我试图通过Android应用发送电子邮件。目前使用Android Studio 1.2并在安装了ARM翻译和Google应用程序的Galaxy Nexus 4.3(API 18)映像上测试Genymotion 2.4.0。我知道这个问题与this非常相似,但我已经尝试了所有建议,但没有任何效果。EXTRA_SUBJECT没有获取数据

我可以检索电子邮件(发送到哪里)和电子邮件的“正文”,但无法获取电子邮件主题。代码如下:

Intent iEmail = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", "[email protected]", null)); 
iEmail.setType("text/plain"); 
// Both these "options" don't work 
iEmail.putExtra(Intent.EXTRA_SUBJECT, etTema.getText()); 
iEmail.putExtra(android.content.Intent.EXTRA_SUBJECT, "subject"); 
// This works fine 
iEmail.putExtra(Intent.EXTRA_TEXT, etDesc.getText()); 
startActivity(Intent.createChooser(iEmail, "Choose:")); 

当活动开始,我选择了电子邮件客户端的电子邮件(发送到)正确显示的是“体”,但主题仍然是空白。

编辑︰无论我使用EditText(etTema)或尝试传递一个字符串,结果总是相同的。

有什么建议吗?由于

回答

0

您的代码应该工作,但我记得使用:

String uriText = "mailto:[email protected]" + 
    "?subject=" + Uri.encode("some subject text here") + 
    "&body=" + Uri.encode("some text here"); 
Uri uri = Uri.parse(uriText); 
Intent sendIntent = new Intent(Intent.ACTION_SENDTO); 
sendIntent.setData(uri); 
startActivity(Intent.createChooser(sendIntent, "Send email")); 

看看是否能在各种设备/原料药为你工作得更好。

+0

试过但仍无法获得“主题”信息。无论如何谢谢@shkschneider –

0

试试这样做。这对我很好。

Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", "[email protected]", null)); 
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "My subject"); 
emailIntent.putExtra(Intent.EXTRA_TEXT, etDesc.getText()); 
startActivity(Intent.createChooser(emailIntent, "Send Email")); 
+0

这是我第一次尝试(没有“setType”)。 “主题”仍然是空的。 –