Java 如何防止我的应用程序在startActivity()上显示特定的应用程序

Java 如何防止我的应用程序在startActivity()上显示特定的应用程序,java,android-intent,Java,Android Intent,当用户在我的应用程序中单击一个按钮时,它应该启动一个SMS应用程序。对于这一点,我只是简单地提出了一个意图 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", "+234000000000", null)); intent.putExtra("sms_body", "Hello!")); if (intent.resolveActivity(getActivity().getPackageManager()) !

当用户在我的应用程序中单击一个按钮时,它应该启动一个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是出现的应用程序列表中的一个,我不希望这样

如何筛选此列表并删除Messenger等特定应用程序?



它正试图让用户选择他们最喜欢的短信应用程序,别忘了Facebook Messenger现在也可以管理短信,这就是它作为一种选择出现的原因。根据我的经验,除非用户选择“始终”,否则无法避免。想象一下,如果用户有其他应用来管理短信,我们就不能强迫他们使用我们的首选短信应用

是的,您可以将应用程序限制为仅打开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);
            }

谢谢你的建议,k4vin,但是有一个特别的原因我不想把Facebook Messenger包括在选项列表中。我只是想知道是否有可能从列表中排除某个应用,以及如何排除。欢迎。快乐编码