捕获获取安装包信息的异常

This commit is contained in:
chenjuntao
2018-11-26 10:26:17 +08:00
parent b2e3ae684d
commit f75490aec2

View File

@ -12,6 +12,14 @@ object PackageHelper {
var excludePackageNameList = arrayListOf<String>()
var localPackageNameSet = hashSetOf<String>()
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<String> {
val list = HashSet<String>()
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<String>()
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
}
}