From f75490aec2aaa747c98d46deaa347c2b0a4405ba Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Mon, 26 Nov 2018 10:26:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8D=95=E8=8E=B7=E8=8E=B7=E5=8F=96=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E5=8C=85=E4=BF=A1=E6=81=AF=E7=9A=84=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/PackageHelper.kt | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) 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