1

所以我希望用户能够打开 Skype 或手机的联系人列表。

    if (isPackageExists("com.skype.raider")){

       PackageManager packageManager = getPackageManager();
       Intent skype = packageManager.getLaunchIntentForPackage("com.skype.raider");
       Intent contacts = new Intent(Intent.ACTION_VIEW, Contacts.CONTENT_URI); 


       Intent chooserIntent = Intent.createChooser(skype, "Talk");
       chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, contacts);

       startActivity(chooserIntent);       }

chooserIntent 不显示列表中的任何一个意图。

如何为两个自定义意图制作简单的选择器?

4

1 回答 1

0

chooserIntent 不显示列表中的任何一个意图。

让我们暂时搁置您的 Skype 假设(永远使用此软件包名称,永远使用启动器Intent适用于此用例)有问题。

首先,您没有EXTRA_INITIAL_INTENTS正确使用。该文档指出它是一个Intent对象数组,并且您没有提供数组。

其次,我不清楚如果EXTRA_INITIAL_INTENTS他们不在底层选择器支持的事物列表中,选择器是否会显示Intent。在这种情况下,Skype 可能不在返回的名单中queryIntentActivities(new Intent(Intent.ACTION_VIEW, Contacts.CONTENT_URI)),因此 Skype 通常不会成为选择器中的选择。我从来没有尝试过使用EXTRA_INITIAL_INTENTS有效地将其他半随机Intent对象(从操作系统的角度来看的“随机”,在这种情况下比用户更重要)连接到选择列表中。它可能会起作用,但我当然不会认为它会起作用。

我认为这可以轻松完成

很少有开发人员会考虑实现一个对话框或供用户选择的特别复杂的ListFragmentIntents

我必须制作新的弹出窗口或活动,只是为了让用户选择他喜欢用哪种方式拨打电话

如果上述修复对您不起作用,那是完全有可能的。

于 2013-09-18T13:30:59.107 回答