android - 如何在不使用 Intent 发送电子邮件的情况下打开电子邮件客户端?

标签 android android-intent

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

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

最佳答案

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

获取能够发送邮件的包

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);

并创建您的项目,您可以获得应用程序的图标 绑定(bind)你的元素

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

并在回收者 View 中单击该项目

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/

相关文章:

android - 扫描时如何在Android中读取蓝牙LE广告数据

android - .gif 图像作为源在 Windows kivy 程序中运行良好。通过 kivy Launcher 运行显示 gif 图像的背景

android - 导航组件 : Get Activity Result

java - 动态 Intent 提取数据

android - 使用 Phonegap 创建 Android 服务? (即使关闭也可以运行phonegap应用程序)

android - 应用程序发送到后台并进行响应后,firemonkey android透明度表单变为可见

java - 无法将类型 Object[] 作为 Android AIDL 中方法的参数传递

java - Android - 语音识别而不是语音

android - ACTION_MANAGE_OVERLAY_PERMISSION 未重定向到 Api 30 中的应用页面

android - 在打开图像时解析来自 Android 中不同来源的 URI