android - 如何获取并列出 Android 中所有已安装/可用的导航应用程序及其图标?

标签 android kotlin

正如主题所述,我正在寻找一种方法来获取并列出 Android 设备中安装的所有可用导航应用程序及其各自的图标。假设这些设备有 Google map 和 Waze,我想获取这些应用程序的所有信息,例如它们的名称、图标和程序包,以便通过代码打开它们。

最佳答案

你可以试试这个:

val packageManager: PackageManager = viewLayer.activity.packageManager
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0"))
val resolvedInfoList: List<ResolveInfo> = packageManager.queryIntentActivities(
    intent,
    PackageManager.MATCH_DEFAULT_ONLY
)
for (resolvedInfo in resolvedInfoList) {
    val packageName: String = resolvedInfo.activityInfo.applicationInfo.packageName
    val appName: String = resolvedInfo.activityInfo.applicationInfo.loadLabel(packageManager).toString()
    val launcherIcon: Drawable = resolvedInfo.activityInfo.applicationInfo.loadIcon(packageManager)
}

关于android - 如何获取并列出 Android 中所有已安装/可用的导航应用程序及其图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62033524/

相关文章:

java - Kotlin:将 Array 作为 vararg 参数传递时参数类型不匹配

android - 在 kotlin 中定义两次字段有什么影响?

android - fragment 不显示第二次使用

kotlin - 是否有标准的Kotlin函数将Sequence分为头和尾?

android - 使用 API 18 及更高版本在 Android KeyStore 中存储 key

android - 如何通过 Intent 从我自己的 Activity 中启动 connectbot

kotlin - 如何从 Kotlin 调用静态 JNI 函数?

android - 如何使用 Google 的 GithubBrowserSample 方法在 fragment 之间共享 View 模型?

Android - 处理虚拟和物理键盘事件

android - BiometricPromptCompat : Failed to check device credential. 未找到父处理程序