我正在写一个android应用程序,显示所有已安装的应用程序和应用程序的权限。 我正在写这个应用程序。 利用Kotlin。 有没有任何方法从包管理器获得所有安装的应用程序我没有使用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)
)
}
这个问题在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中的工作原理:
https://proandroiddev.com/how-to-get-users-installed-apps-in-android-11-b4a4d2754286