Ограничение приложений, которые отображаются в окне выбора общего ресурса

#android

#Android

Вопрос:

Я внедряю приложение, в котором я разрешаю вам делиться определенным URL. Когда я нажимаю поделиться, используя этот код:

    fun shareLink(link: String, text: String? = "") {
    val share = Intent(android.content.Intent.ACTION_SEND)
    share.type = "text/plain"
    share.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET)

    // Add data to the intent, the receiving app will decide
    // what to do with it.
    share.putExtra(Intent.EXTRA_SUBJECT, activity.getString(R.string.invite_share_other_text))

    var extraText = if (!text.isNullOrEmpty()) "$text $link" else link
    share.putExtra(Intent.EXTRA_TEXT, extraText)
    activity.startActivity(Intent.createChooser(share, activity.getString(R.string.invite_share_other_title)))
}
  

Я получаю следующее диалоговое окно (Samsung phone):
введите описание изображения здесь:

Однако при использовании CityMaps2Go для совместного использования списка (который также приводит к тексту URL) на том же телефоне, я получаю:

введите описание изображения здесь

Это намного меньше вариантов.

Сначала я подумал, что CityMaps2Go просто реализует свой собственный диалог и, таким образом, контролирует разрешенные ими параметры, но когда я попробовал это на своем Google Pixel, я получил другой диалог (также с меньшим количеством опций, чем у других приложений), который говорит мне, что приложение на самом деле использует OS one, а не пользовательский:

введите описание изображения здесь

Я думал, что невозможно ограничить приложения, которые будут отображаться при запуске намерения text / plain, так что же здесь происходит?

Комментарии:

1. Пожалуйста, делитесь тем, что хочет пользователь , не основываясь на какой-то вашей эвристике, которая предполагает, чего хочет пользователь.

2. @CommonsWare я не хочу ограничивать, мне любопытно, что здесь делается