在实际开发中,常有需求在程序启动第三方APP,直接上代码:
private void openOtherAPP(Context context, String packageName) { PackageManager pm = context.getPackageManager(); try { PackageInfo pi = pm.getPackageInfo(packageName, 0); if (pi != null) { Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null); resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER); resolveIntent.setPackage(pi.packageName); List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0); ResolveInfo ri = apps.iterator().next(); if (ri != null) { String pName = ri.activityInfo.packageName; String className = ri.activityInfo.name; Intent intent = new Intent(Intent.ACTION_MAIN); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName cn = new ComponentName(pName, className); intent.setComponent(cn); context.startActivity(intent); } } } catch (NameNotFoundException e) { e.printStackTrace(); } }