当用户按下按钮时,我想打开默认电子邮件客户端或可用电子邮件客户端列表。当用户选择使用哪个客户端时,应将用户重定向到电子邮件应用程序的收件箱。使用Android意图有可能吗?

在实际创建电子邮件时,我只能找到启动电子邮件的解决方案。

最佳答案

为此,您需要创建一个自定义选择器,例如,您可以创建一个BottomSheetDialog项,其中RecyclerView个项目是ResolveInfo个项目

获取能够发送电子邮件的软件包

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "test");
sendIntent.setType("text/plain");
List<ResolveInfo> resolveInfoList = getActivity().getPackageManager()
        .queryIntentActivities(sendIntent, 0);


并创建您的项目,您可以获取应用程序的图标
您的物品的绑定

   set(ResolveInfo info, int pos) {
                PackageManager pm = App.getInstance().getPackageManager();
                appName.setText(info.activityInfo.loadLabel(pm));
                appIcon.setImageDrawable(info.activityInfo.loadIcon(pm));
}


然后在回收者视图中单击该项目

Intent launchIntent = getPackageManager().getLaunchIntentForPackage(resolveInfo.activityInfo.packageName);
if (launchIntent != null) {
    startActivity(launchIntent);//null pointer check in case package name was not found
}

关于android - 如何在不使用 Intent 发送电子邮件的情况下打开电子邮件客户端?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54553591/

10-12 00:08
查看更多