不需要知道需要打开的app的Scheme就可以打开对应app
第一步:
private void getAppInfo(Context context) throws Exception {
PackageManager packageManager = context.getPackageManager();
//获取所有安装的app
List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0);
for (PackageInfo info : installedPackages) {
String packageName = info.packageName;//app包名
ApplicationInfo ai = packageManager.getApplicationInfo(packageName, 0);
String appName = (String) packageManager.getApplicationLabel(ai);//获取应用名称
LogUtil.e("---------------appName:" + appName);
LogUtil.e("===============apppackageName:" + packageName);
}
}
获取已安装的app的包名和app名字,来获取想要打开的app的包名。
第二步:
public void openApp(Context context, String packageName) {
Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
context.startActivity(intent);
}
通过获取到的包名,在自己app中打开三方app。