Как запустить почтовый клиент прямо в папке входящих сообщений? - PullRequest
1 голос
/ 16 августа 2010

Возможно ли это даже без вызова определенного пакета?Я нашел бесчисленное множество примеров отправки электронной почты с помощью намерения, но я ничего не могу найти, просто открыв почтовый клиент по умолчанию на устройстве с помощью нажатия кнопки (желательно с диалоговым окном выбора в случае, если у пользователя несколько клиентов).

Ответы [ 4 ]

14 голосов
/ 28 января 2015

Нет способа по умолчанию / простой способ сделать это.Этот код работал для меня.Открывается средство выбора, в котором все приложения электронной почты зарегистрированы на устройстве и сразу во входящие:

    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);
    }
5 голосов
/ 16 августа 2010

Не существует стандартного действия Intent для открытия «просмотра входящих сообщений» «почтового клиента по умолчанию на устройстве».

1 голос
/ 15 августа 2018

Это работает в настоящее время

   Intent intent = new Intent("android.intent.action.MAIN");
        intent.addCategory("android.intent.category.APP_EMAIL");
        startActivity(Intent.createChooser(intent, ""));
1 голос
/ 26 апреля 2011

вы можете попробовать это из вашего объекта деятельности:

это не обязательно приведет вас непосредственно к папке «Входящие», но откроет приложение электронной почты:

Intent intent = getPackageManager().getLaunchIntentForPackage("com.android.email");
startActivity(intent); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...