当多个应用符合操作时,隐式意图会向用户显示应用列表。然后用户选择启动此应用程序。
但是,如果你有一个包名(或/和classname)列表,那么显式意图可能相同吗?像这样的东西(不是这样的,但这就是我想要的):
Intent i = new Intent().setClassName(ListofPackagenames, ListofClassnames)
startActivity(i);
使用ListofPackagenames(数组)包名和ListofClassnames列表和(数组)类名列表。 使用startActivity时,应该显示一个对话框,就像您想要启动隐式intent一样。
如果这是不可能的,那么我可以做一个costum对话。 那么只有一种方法,只能从packagename或classname获取appicon?
答案 0 :(得分: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);