首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将电子邮件客户端直接启动到收件箱视图?

如何将电子邮件客户端直接启动到收件箱视图?
EN

Stack Overflow用户
提问于 2010-08-16 04:21:53
回答 4查看 4.8K关注 0票数 5

在不调用特定包的情况下,这是可能的吗?我已经找到了无数通过意图发送电子邮件的例子,但我找不到任何关于简单地通过按下按钮在设备上打开默认电子邮件客户端的例子(如果用户有多个客户端,最好使用选择器对话框)。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-16 06:54:30

没有标准的Intent操作来打开“设备上的默认电子邮件客户端”的“收件箱视图”。

票数 7
EN

Stack Overflow用户

发布于 2015-01-28 18:46:38

没有默认/简单的方法来做到这一点。这段代码对我很有效。它打开一个选择器,里面有所有注册到设备上的电子邮件应用程序,并直接进入收件箱:

代码语言:javascript
复制
    Intent emailIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("mailto:"));
    PackageManager pm = getPackageManager();

    List<ResolveInfo> resInfo = pm.queryIntentActivities(emailIntent, 0);
    if (resInfo.size() > 0) {
        ResolveInfo ri = resInfo.get(0);
        // First create an intent with only the package name of the first registered email app
        // and build a picked based on it
        Intent intentChooser = pm.getLaunchIntentForPackage(ri.activityInfo.packageName);
        Intent openInChooser =
                Intent.createChooser(intentChooser,
                        getString(R.string.user_reg_email_client_chooser_title));

        // Then create a list of LabeledIntent for the rest of the registered email apps 
        List<LabeledIntent> intentList = new ArrayList<LabeledIntent>();
        for (int i = 1; i < resInfo.size(); i++) {
            // Extract the label and repackage it in a LabeledIntent
            ri = resInfo.get(i);
            String packageName = ri.activityInfo.packageName;
            Intent intent = pm.getLaunchIntentForPackage(packageName);
            intentList.add(new LabeledIntent(intent, packageName, ri.loadLabel(pm), ri.icon));
        }

        LabeledIntent[] extraIntents = intentList.toArray(new LabeledIntent[intentList.size()]);
        // Add the rest of the email apps to the picker selection
        openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents);
        startActivity(openInChooser);
    }
票数 19
EN

Stack Overflow用户

发布于 2018-08-15 13:30:22

这个现在还能用

代码语言:javascript
复制
   Intent intent = new Intent("android.intent.action.MAIN");
        intent.addCategory("android.intent.category.APP_EMAIL");
        startActivity(Intent.createChooser(intent, ""));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3489068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档