捕获获取安装包信息的异常
This commit is contained in:
@ -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
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user