Как я могу запретить моему приложению отображать определенные c приложений в startActivity () - PullRequest
2 голосов
/ 07 мая 2020

Когда пользователь нажимает кнопку в моем приложении, он должен запустить приложение SMS. Для этого я просто запустил намерение.

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", "+234000000000", null));
intent.putExtra("sms_body", "Hello!"));
if (intent.resolveActivity(getActivity().getPackageManager()) != null) startActivity(intent);

Это отлично работает! Единственная проблема в том, что Facebook Messenger входит в список отображаемых приложений, а я этого не хочу.

Как я могу отфильтровать этот список и удалить определенные c приложения, такие как Messenger?

enter image description here

Ответы [ 2 ]

1 голос
/ 07 мая 2020

Да, вы можете ограничить свое приложение открытием только android приложения для обмена сообщениями по умолчанию.

            Uri uri = Uri.parse("sms:+444498494984");
            Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
            //android sms app package name
            intent.setPackage("com.google.android.apps.messaging");
            intent.putExtra("sms_body", "message to send");
            if (intent.resolveActivity(getPackageManager()) != null)
            {
                startActivity(intent);
            }
0 голосов
/ 07 мая 2020

Он пытается дать пользователю выбор в его любимом приложении для SMS. Не забывайте, что Facebook Messenger теперь также может управлять SMS, поэтому он отображается как вариант выбора. По моему опыту, этого нельзя избежать, если пользователь не выберет «всегда». Представьте, что если у пользователя есть другие приложения для управления SMS, мы не можем заставить их использовать наше предпочтительное приложение для обмена сообщениями.

...