安卓app启动另外一个app

来源:互联网 发布:阿尔法狗算法公开 编辑:程序博客网 时间:2024/04/30 17:33

通过反编译工具,取得另外一个app的包名即可,封装成工具类,如下:

private void doStartApplicationWithPackageName(String packagename) {         // 通过包名获取此APP详细信息,包括Activities、services、versioncode、name等等        PackageInfo packageinfo = null;        try {            packageinfo = getPackageManager().getPackageInfo(packagename, 0);        } catch (NameNotFoundException e) {            e.printStackTrace();        }        if (packageinfo == null) {            return;        }         // 创建一个类别为CATEGORY_LAUNCHER的该包名的Intent        Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);        resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);        resolveIntent.setPackage(packageinfo.packageName);         // 通过getPackageManager()的queryIntentActivities方法遍历        List<ResolveInfo> resolveinfoList = getPackageManager()                .queryIntentActivities(resolveIntent, 0);         ResolveInfo resolveinfo = resolveinfoList.iterator().next();        if (resolveinfo != null) {            // packagename = 参数packname            String packageName = resolveinfo.activityInfo.packageName;            // 这个就是我们要找的该APP的LAUNCHER的Activity[组织形式:packagename.mainActivityname]            String className = resolveinfo.activityInfo.name;            // LAUNCHER Intent            Intent intent = new Intent(Intent.ACTION_MAIN);            intent.addCategory(Intent.CATEGORY_LAUNCHER);             // 设置ComponentName参数1:packagename参数2:MainActivity路径            ComponentName cn = new ComponentName(packageName, className);             intent.setComponent(cn);            startActivity(intent);        }    }



原创粉丝点击