0

Why android intent chooser dialog show only two or three navigation apps if system has four? Intent chooser code:

val list = packageManager.queryIntentActivities(geoIntent, 0)
val intentList = arrayListOf<Intent>()

val packageList = list.filter { item -> navigationPackageList.contains(item.activityInfo.packageName) }
        packageList.forEach { item ->
            val packageName = item.activityInfo.packageName
            val intent = Intent(Intent.ACTION_VIEW)
            when(packageName) {
                "com.google.android.apps.maps" -> {
                    intent.data = Uri.parse("google.navigation:q=${lat1},${lng1}")
                    intent.setPackage("com.google.android.apps.maps")
                }
                "ru.yandex.yandexnavi" -> {
                    intent.data = Uri.parse("yandexnavi://build_route_on_map?lat_from=${lat1}&lon_from=${lng1}&lat_to=${lat2}&lon_to=${lng2}")
                    intent.setPackage("ru.yandex.yandexnavi")
                }
                "ru.yandex.yandexmaps" -> {
                    intent.data = Uri.parse("yandexmaps://maps.yandex.ru/?rtext=${lat1},${lng1}~${lat2},${lng2}&rtt=mt")
                }
                "ru.dublgis.dgismobile" -> {
                    intent.data = Uri.parse("dgis://2gis.ru/routeSearch/rsType/car/to/${lng1},${lat1}")
                }
            }
            intentList.add(intent)
        }
        val chooserIntent = Intent.createChooser(
            intentList.last(),
            chooserTitle
        )
        chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentList.toTypedArray())
        startActivity(chooserIntent)

When: Intent.createChooser(intentList.first(), chooserTitle) shows two apps, but when Intent.createChooser(intentList.last(), chooserTitle) shows three apps. How to show all navigation apps in intent chooser dialog?

MDev25
  • 216
  • 2
  • 9

0 Answers0