所以我希望用户能够打开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不会显示列表中的任何一个意图。
如何为两个自定义意图制作简单的选择器?
答案 0 :(得分:0)
chooserIntent不会显示列表中的任何一个意图。
让我们暂时搁置你的Skype假设(永远使用这个软件包名称,永远是发射器Intent
在这个用例中是合适的)这一时刻有问题。
首先,您没有正确使用EXTRA_INITIAL_INTENTS
。 The documentation states that it is an array of Intent
objects,你没有提供数组。
其次,我不清楚如果选择器不在基础选择器EXTRA_INITIAL_INTENTS
支持的事物列表中,选择器是否会显示Intent
。在这种情况下,Skype可能不在queryIntentActivities(new Intent(Intent.ACTION_VIEW, Contacts.CONTENT_URI))
返回的名单中,因此Skype通常不会在选择器中作出选择。我从未尝试使用EXTRA_INITIAL_INTENTS
有效地连接其他半随机Intent
对象(从操作系统的角度来看,“随机”比在这种情况下的用户更多)连接到选项列表上。它可能有效,但我当然不会认为它确实如此。
我认为这可以轻松完成
很少有开发人员会考虑实施一个对话框或ListFragment
Intents
,以供用户选择,使其变得特别复杂。
我必须制作新的弹出窗口或活动,以便让用户选择他喜欢拨打电话的方式
如果前面提到的修复不适合你,那完全有可能。