繁体   English   中英

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

[英]How can I prevent my app from showing specific apps on startActivity()

当用户单击我的应用程序中的按钮时,它应该启动一个 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 等特定应用?


在此处输入图像描述

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

它试图让用户在他们最喜欢的 SMS 应用程序上做出选择,不要忘记 Facebook Messenger 现在也可以管理 SMS,这就是它显示为选择的原因。 根据我的经验,除非用户选择“始终”,否则无法避免。 想象一下,如果用户有其他应用程序来管理 SMS,我们不能强迫他们使用我们首选的消息传递应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM