一个项目有要求,要通过一个app启动另一个app应用程序,这个功能不难实现,我封装了一个函数,在函数参数中输入你要启动的app的名字。即可直接启动目标函数,不多说直接上代码。
private void startAppAccordingName(String appName)
{String mPackages = null;
//获得packageManager,即包管理器
PackageManager packageManager=this.getPackageManager();
//获取程序上的packages列表
List packages=packageManager.getInstalledPackages(0);
//遍历这些列表
for(int i=0;i `<`packages.size();i++)
{
PackageInfo pi=packages.get(i);
if((pi.applicationInfo.loadLabel(getPackageManager()).toString()).equals(appName))
{
mPackages=pi.packageName;
break;
}
}
//通过intent启动相应的package对应的app
Intent intent = packageManager.getLaunchIntentForPackage(mPackages);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP) ;
this.startActivity(intent);
}
上面是我封装的方法,如果有相同的需求需要可以直接用,也可以进行更改