/**
* 通过包名打开APP
*
* @param packagename 包名
*/
private void startAppWithPackageName(String packagename) {
if (packagename == null) {
Log.e(TAG, "call method startAppWithPackageName, packagename is null.");
return;
}
Log.d(TAG, "call method startAppWithPackageName, packagename = " + packagename);
PackageInfo packageinfo = null;
try {
packageinfo = getPackageManager().getPackageInfo(packagename, 0);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
if (packageinfo == null) {
Log.e(TAG, "call method startAppWithPackageName, packageinfo is null.");
return;
}
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(packageinfo.packageName);
List<ResolveInfo> resolveinfoList = getPackageManager()
.queryIntentActivities(resolveIntent, 0);
ResolveInfo resolveinfo = resolveinfoList.iterator().next();
if (resolveinfo != null) {
String packageName = resolveinfo.activityInfo.packageName;
String className = resolveinfo.activityInfo.name;
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn = new ComponentName(packageName, className);
intent.setComponent(cn);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
Android 通过包名打开APP
最新推荐文章于 2023-11-07 16:53:11 发布