我在2.3.3应用程序中创建了以下内容(这只是一个代码片段)。
else if(intentName.contains("Email"))
{
System.out.println();
System.out.println("Button["+ i + "] intent name contains : EMAIL");
System.out.println("Button["+ i + "] intent EMAIL contains: " + parameter);
send_email = new Intent(Intent.ACTION_SEND);
send_email.setType("message/rfc822");
send_email.putExtra(Intent.EXTRA_EMAIL, parameter);
send_email.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
send_email.putExtra(Intent.EXTRA_SUBJECT, "");
send_email.putExtra(Intent.EXTRA_TEXT,"");
onClick[i] = new OnClickListener()
{
public void onClick(View arg0)
{
try
{
con.startActivity(send_email);
}
catch(ActivityNotFoundException ex)
{
Toast.makeText(con, "No Email Clients Installed", Toast.LENGTH_LONG).show();
}
}};
}
当我在模拟器上运行它时 - 我得到了祝酒 - “没有安装电子邮件客户端”,这非常好,因为模拟器没有电子邮件客户端。然而,由于我的手机上有默认的电子邮件客户端和Gmail,因此它可以正常使用我的设备。
然而,因为我正在为android 2.3.3+开发 用android 2.3.3做所有android设备。有默认的电子邮件客户端? 如果他们这样做,那么我可以保留当前的功能而不必创建我自己的客户端。
这是我原来的问题,但现在在查看模拟器后 - 我想问:
所有拥有2.3.3 sdks的Android设备是否都设置了电子邮件客户端选项?
感谢您的帮助!
答案 0 :(得分:2)
绝对没有办法保证运行特定Android构建的所有设备都有一个电子邮件客户端。它是开源构建(电子邮件应用程序)的一部分,但这并不是说某人没有定制它并删除该应用程序。可以安全地假设它在那里,但你真正应该做的是优雅地失败并向用户显示错误要么说你的应用程序需要一个电子邮件应用程序(如果有)或者说这个功能被禁用,因为没有电子邮件应用程序是当下。另一种选择是为他们提供从市场上下载应用程序的链接等。
附注:模拟器实际上有一个电子邮件应用程序,它可能没有配置为处理message/rfc822
意图。