如何防止我的应用程序在 startActivity() 上显示特定应用程序
How can I prevent my app from showing specific apps on startActivity()
当用户单击我的应用程序中的按钮时,它应该会启动一个 SMS 应用程序。对此,我干脆开了一个intent。
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 等特定应用程序?
它试图让用户选择他们最喜欢的 SMS 应用程序,不要忘记 Facebook Messenger 现在也可以管理 SMS,这就是它显示为一个选项的原因。根据我的经验,除非用户选择 'always' 否则无法避免。想象一下,如果用户有其他应用程序来管理 SMS,我们不能强迫他们使用我们首选的消息传递应用程序。
是的,您可以限制您的应用仅打开 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 应用程序。对此,我干脆开了一个intent。
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 等特定应用程序?
它试图让用户选择他们最喜欢的 SMS 应用程序,不要忘记 Facebook Messenger 现在也可以管理 SMS,这就是它显示为一个选项的原因。根据我的经验,除非用户选择 'always' 否则无法避免。想象一下,如果用户有其他应用程序来管理 SMS,我们不能强迫他们使用我们首选的消息传递应用程序。
是的,您可以限制您的应用仅打开 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);
}