0

我在我的 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 设备与 android 2.3.3。有默认的电子邮件客户端?如果他们这样做了,那么我可以保留当前的功能,而不必创建自己的客户端。

那 ^ 是我最初的问题,但现在在查看模拟器之后 - 我的意思是问:

是否所有具有 2.3.3 sdks 的 android 设备都有设置电子邮件客户端选项?

感谢您的帮助!

4

1 回答 1

2

保证所有运行特定 android 版本的设备都有电子邮件客户端的方法绝对是零。它是开源构建(电子邮件应用程序)的一部分,但这并不是说有人没有定制它并删除了该应用程序。假设它在那里可能是安全的,但你真正应该做的是优雅地失败并向用户显示一个错误,要么说你的应用程序需要一个电子邮件应用程序(如果它需要的话),要么说这个功能被禁用,因为没有电子邮件应用程序是展示。另一种选择是为他们提供从市场下载应用程序的链接等。

Side note: the emulator actually does have an e-mail app, it might just not be configured to handle message/rfc822 intents.

于 2012-10-01T16:11:39.067 回答