有人可以告诉我如何仅知道包名称来启动新应用程序吗?我没有关于主要活动是什么的信息。
Answers:
尝试使用PackageManager和getLaunchIntentForPackage()
只需使用以下两行,即可启动任何package name已知的已安装应用程序:
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.example.abc");
startActivity( launchIntent );
如果您不知道要启动的应用程序的程序包名称,请尝试一下
PackageManager pm;
pm = getPackageManager();
// get a list of installed apps.
packages = pm.getInstalledApplications(0);
欲了解更多信息请参考以下链接使用软件包管理器
LaunchIntent.setFlags("Intent.FLAG_ACTIVITY_NEW_TASK");和LaunchIntent.setFlags("Intent.FLAG_ACTIVITY_SINGLE_TOP");
您可以通过PackageManager该类获得启动意图:
PackageManager pm = context.getPackageManager();
Intent launchIntent = pm.getLaunchIntentForPackage("com.example.package");
context.startActivity(launchIntent);
请注意,getLaunchIntentForPackage如果找不到包,则返回null。因此,您可能要添加一个空检查:
if (launchIntent != null) {
context.startActivity(launchIntent);
} else {
Toast.makeText(context, "Package not found", Toast.LENGTH_SHORT).show();
}
Intent intent;
PackageManager pm = getActivity().getPackageManager();
intent = pm.getLaunchIntentForPackage("com.package.name");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);