android 获取安装应用列表

157 阅读1分钟

1 获取应用列表

val packageManager = context.packageManager
val intent = Intent(Intent.ACTION_MAIN).apply {
    addCategory(Intent.CATEGORY_LAUNCHER)
}
val queryIntentActivities = if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
    packageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL)
} else {
    packageManager.queryIntentActivities(intent, 0)
}
val appInfoList =  queryIntentActivities.map {
    //获取icon
    AppInfo(it.loadIcon(packageManager)).apply {
        //获取app名称
        appName = it.loadLabel(packageManager).toString()
        // 获取报名
        packageName = it.activityInfo.applicationInfo.packageName
    }
}

2 根据包名打开app

val intent = packageManager.getLaunchIntentForPackage(appInfo.packageName)
startActivity(intent)