本文共 2397 字,大约阅读时间需要 7 分钟。
/** * 通过应用名获取包名 * * @param name 应用名 * @return 包名 */public static String getPackageNameByAppName(Context context, @NonNull String name) { try { if (TextUtils.isEmpty(name)) { return null; } // 获取到包的管理者 PackageManager packageManager = context.getPackageManager(); // 获取所有的安装程序 ListinstalledPackages = packageManager.getInstalledPackages(0); // 遍历获取到每个应用程序的信息 for (PackageInfo packageInfo : installedPackages) { // 获取程序名 String appName = packageInfo.applicationInfo.loadLabel(packageManager).toString(); if (name.equals(appName)) { return packageInfo.packageName; } } return null; } catch (Exception e) { e.printStackTrace(); return null; }}
/** * 获取手机中的所有应用的信息 * @param context context */public void getInstalledApplications(Context context) { // 获取到包的管理者 PackageManager packageManager = context.getPackageManager(); // 获取所有的安装程序 ListinstalledPackages = packageManager.getInstalledPackages(0); // 遍历获取到每个应用程序的信息 for (PackageInfo packageInfo : installedPackages) { // 获取到程序的包名 String packageName = packageInfo.packageName; // 获取到版本号 String versionName = packageInfo.versionName; ApplicationInfo applicationInfo = packageInfo.applicationInfo; // 获取程序名 String appName = applicationInfo.loadLabel(packageManager).toString(); // 获取到程序图标 Drawable icon = applicationInfo.loadIcon(packageManager); // 获取程序的所有标签 用来获取 以下信息 int flags = applicationInfo.flags; // 判断是不是用户程序 if ((flags & ApplicationInfo.FLAG_SYSTEM) == ApplicationInfo.FLAG_SYSTEM) { // 系统程序 } else { // 用户程序 } // 判断是不是安装在哪 if ((flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) == ApplicationInfo.FLAG_EXTERNAL_STORAGE) { // 内存卡 } else { // 手机内存 } }}
/** * 启动app * * @param context context * @param appPackageName 应用包名 */public static void startAPP(Context context, String appPackageName) { try { Intent intent = context.getPackageManager().getLaunchIntentForPackage(appPackageName); context.startActivity(intent); } catch (Exception e) { ToastUtil.showDebugToast(context, "没有安装"); }}
转载地址:http://wrjtx.baihongyu.com/