Android Intent.createChooser 不适用于 Intent.ACTION_SEND

sam*_*azi 5 android android-intent

ListView我有一个 Android 应用程序,我正在通过自定义将办公地点加载到Adapter.

在每个图标中ListViewItem,我都有ImageView一个电子邮件图标,并且我已将自定义绑定OnClickListener到该图标,该ImageView图标应允许用户创建电子邮件以发送到办公地点。

我希望用户能够从其设备上的电子邮件应用程序中进行选择,因此我Intent.CreateChooser()在自定义中使用了OnClickListener如下所示:

    private class EmailOnClickListener implements OnClickListener {
        private Context context;
        private String email;

        public EmailOnClickListener(Context context, String email) {
            this.context = context;
            this.email = email;
        }

        @Override
        public void onClick(View v) {
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("message/rfc822");
            intent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {email});
            intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Test Subject");

            context.startActivity(Intent.createChooser(intent, "Send mail..."));
        }
    }
Run Code Online (Sandbox Code Playgroud)

我已经OnClickListener通过我的自定义绑定了我的自定义Adapter,如下所示:

    ImageView email = (ImageView) v.findViewById(R.id.btnEmail);
    email.setOnClickListener(new EmailOnClickListener(context, contact.getEmail()));
Run Code Online (Sandbox Code Playgroud)

我目前正在 Android 2.3 的 HTC Desire HD 上进行测试,尽管我的设备上有 Gmail 和默认邮件,但当我点击电子邮件图标时,它不会向我显示选择器,而是直接加载到 Gmail 。

为什么选择器不显示?

sam*_*azi 3

我从这个问题中找到了答案(寻找doreamon的答案)发送电子邮件意图

为了快速参考,我已将方法中的代码更改onClick为以下内容:

Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", email, null));
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Test Subject");

context.startActivity(Intent.createChooser(intent, "Send mail..."));
Run Code Online (Sandbox Code Playgroud)