如何使用kotlin语言获取android应用程序中的所有已安装应用程序列表?

如何使用kotlin语言获取android应用程序中的所有已安装应用程序列表?,android,kotlin,Android,Kotlin,我正在编写一个android应用程序,显示所有已安装的应用程序和应用程序权限。我正在写这个应用程序。使用kotlin。有没有办法从package manager获取所有已安装的应用程序?我不使用JAVA。使用下面的代码片段,您可以在设备上获取已安装应用程序的详细信息 val mainIntent = Intent(Intent.ACTION_MAIN, null) mainIntent.addCategory(Intent.CATEGORY_LAUNCHER) val pkg

我正在编写一个android应用程序,显示所有已安装的应用程序和应用程序权限。我正在写这个应用程序。使用kotlin。有没有办法从package manager获取所有已安装的应用程序?我不使用JAVA。

使用下面的代码片段,您可以在设备上获取已安装应用程序的详细信息

  val mainIntent = Intent(Intent.ACTION_MAIN, null)
    mainIntent.addCategory(Intent.CATEGORY_LAUNCHER)
    val pkgAppsList = context.packageManager.queryIntentActivities(mainIntent, 0)
val packages: List<ApplicationInfo> =
    pm.getInstalledApplications(PackageManager.GET_META_DATA)

for (packageInfo in packages) {
    Log.d(
       "log",
        "Installed package :" + packageInfo.packageName
    )
    Log.d("log", "Source dir : " + packageInfo.sourceDir)
    Log.d(
       "log",
        "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName)
    )
}
val包:java中的列表。我只是在IDE中将其转换为kotlin

代码->将java文件转换为Kotlin


它工作正常

您可以执行以下操作:

val packages = packageManager.getInstalledApplications(PackageManager.GET_META_DATA)

for (packageInfo in packages) {
    Log.d(TAG, "Package name:" + packageInfo.packageName)
}
您还可以查看本文,了解它在Android 11中的工作原理:


在android studio中,您可以轻松地将java代码转换为kotlin