0

当多个应用程序满足操作时,隐式意图将向用户显示应用程序列表。然后用户选择启动此应用程序。

但是,如果您有一个包名(或/和类名)列表,那么显式意图是否相同?类似的东西(不能以这种方式工作,但这就是我想要的):

Intent i = new Intent().setClassName(ListofPackagenames, ListofClassnames)
startActivity(i);

ListofPackagenames 是一个(数组)包名列表,而 ListofClassnames 是一个(数组)类名列表。使用 startActivity,应该显示一个对话框,就像您想要启动一个隐式意图时一样。

如果这是不可能的,我当然可以制作一个服装对话。那么有没有一种方法,只能从包名或类名中获取 appicon?

4

1 回答 1

1

您可以使用PackageManager以下方式获取启动活动并创建选择器意图EXTRA_INITIAL_INTENTS.

List<String> listofPackageNames=....
List<Intent> intentList=new ArrayList<Intent>();
PackageManager pm = getPackageManager();
for(String packageName:listofPackageNames){
    intentList.add(pm.getLaunchIntentForPackage(packageName));
}
Intent[] intents=new Intent[intentList.size()];
intents=intentList.toArray(intents);
Intent chooser=Intent.createChooser(intents[0],"Choose ...");
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS,Arrays.copyOfRange(intents,1,intents.length));
startActivity(chooser);
于 2015-10-18T20:32:22.097 回答