diff --git a/app/src/main/java/com/gh/common/util/PackageHelper.kt b/app/src/main/java/com/gh/common/util/PackageHelper.kt index c5448a98a2..66cadd379e 100644 --- a/app/src/main/java/com/gh/common/util/PackageHelper.kt +++ b/app/src/main/java/com/gh/common/util/PackageHelper.kt @@ -12,6 +12,14 @@ object PackageHelper { var excludePackageNameList = arrayListOf() var localPackageNameSet = hashSetOf() + get() { + return if (field.isEmpty()) { + field = getAllPackageName(HaloApp.getInstance().application) + field + } else { + field + } + } @JvmStatic fun refreshLocalPackageList() { @@ -31,16 +39,21 @@ object PackageHelper { * 获取所有已安装的软件的包名、版本(非系统应用) */ private fun getAllPackageName(context: Context): HashSet { - val list = HashSet() - val packageInfos = context.applicationContext.packageManager.getInstalledPackages(0) - for (packageInfo in packageInfos) { - if (packageInfo.applicationInfo.flags and ApplicationInfo.FLAG_SYSTEM == 0) { - if (context.packageName != packageInfo.packageName) { - list.add(packageInfo.packageName) + val set = HashSet() + return try { + val packageInfos = context.applicationContext.packageManager.getInstalledPackages(0) + for (packageInfo in packageInfos) { + if (packageInfo.applicationInfo.flags and ApplicationInfo.FLAG_SYSTEM == 0) { + if (context.packageName != packageInfo.packageName) { + set.add(packageInfo.packageName) + } } } + set + } catch (e: Exception) { + e.printStackTrace() + set } - return list } } \ No newline at end of file