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)