使用代码找出应用的包名和startActivity
有时候我们需要在一个应用开启另一个应用,需要传入包名和应用的startActivity,但是又不知道包名和应用名,这里提供代码查找的方式,其他方式请自行google或百度.
StringBuilder sb = new StringBuilder();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> packageInfos = getPackageManager().queryIntentActivities(intent, 0);
for (int i = 0; i < packageInfos.size(); i++) {
String launcherActivityName = packageInfos.get(i).activityInfo.name;
String packageName = packageInfos.get(i).activityInfo.packageName;
Log.i("appappinfo", i + " -- launcherActivityName: " + launcherActivityName);
Log.e("appappinfo", i + " -- packageName: " + packageName);
sb.append(packageName).append("\n").append(launcherActivityName).append("\n");
}
在这里我只是打印了出来,拿到包名和startActivity就可以启动另一个应用,随便贴出启动代码
Intent intent = new Intent();
ComponentName comp = new ComponentName(packageName,launcherActivityName );
intent.setComponent(comp);
intent.setAction("android.intent.action.MAIN");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
需要替换这里的packageName和launcherActivityName.