如何在android中设置两个包为sendIntent?

kg7wmglp  于 2023-02-27  发布在  Android
关注(0)|答案(1)|浏览(109)

我在我的anroid项目中使用sendIntent将用户发送到whatsapp来发送消息。但我希望同时使用whatsapp和business whatsapp,这样用户就可以根据自己的喜好进行选择。下面是我尝试的代码:

Intent sendIntent = new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto:" + toNumber));
sendIntent.setPackage("com.whatsapp","com.whatsapp.w4b");
startActivity(sendIntent);

这个不行我也试过这个代码

Intent sendIntent = new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto:" + toNumber));
sendIntent.setPackage("com.whatsapp");
sendIntent.setPackage("com.whatsapp.w4b");
startActivity(sendIntent);

这是可行的,但这段代码会自动打开businesswhatsapp。

zzlelutf

zzlelutf1#

您尝试的第一个代码片段不起作用的原因是因为setPackage方法一次只接受一个包名,所以您不能像以前那样指定多个包名。
您尝试的第二个代码片段只指定了第二个软件包名称,因此它将始终打开Business WhatsApp。
允许用户在WhatsApp和Business WhatsApp之间进行选择的一种方法是显示一个选择器对话框,让用户选择要使用的应用。您可以使用Intent.createChooser()方法来实现这一点,如下所示:
Intent sendIntent =新意图(意图.动作_发送,URI.解析(“短信:“+收件人编号));发送意图设置包(“com.whatsapp”);
Intent businessSendIntent =新的意图(意图.动作_发送,URI.解析(“短消息:“+目标编号));设置包(“com.whatsap.w4b”);
Intent选择器Intent = Intent.创建选择器(sendIntent,“选择应用”);选择器意图.putExtra(意图.EXTRA_INITIAL_INTENTS,新建意图[] {业务发送意图});启动活动(选择器意图);
在此代码中,我们创建了两个单独的Intent,一个用于WhatsApp,一个用于Business WhatsApp。然后,我们使用Intent.createChooser()创建了一个选择器Intent,它将显示一个对话框,允许用户选择要使用的应用。我们将主Intent(sendIntent)设置为初始选项,并使用EXTRA_INITIAL_INTENTS extra将businessSendIntent添加为附加选项。
这样,用户就可以选择使用哪个应用程序,所选应用程序将用于发送消息。

相关问题