#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 я не хочу ограничивать, мне любопытно, что здесь делается