Wie kann ich erkennen, auf welche Anwendung im nativen Android-Freigabedialog geklickt wurde?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie kann ich erkennen, auf welche Anwendung im nativen Android-Freigabedialog geklickt wurde?

by Guest » 20 Jan 2025, 12:44

Ich würde gerne wissen, wie ich herausfinden kann, auf welche Anwendung der Benutzer im Dialog zum Teilen von Inhalten geklickt hat. Ich verwende derzeit diese Methode:

Code: Select all

    private fun showNativeShareDialog(contentUri: Uri) {
val intent = Intent(Intent.ACTION_SEND).apply {
type = "image/*"
putExtra(Intent.EXTRA_STREAM, contentUri)
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
}

val chooserIntent = Intent.createChooser(intent, "Compartir imagen")
shareResultLauncher.launch(chooserIntent)
}

private val shareResultLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { result ->
if (result.resultCode == RESULT_OK) {
val chosenComponent = result.data?.getStringExtra(Intent.EXTRA_CHOSEN_COMPONENT)
chosenComponent?.let { packageName ->
when {
packageName.contains("whatsapp") -> {
// Usuario eligió WhatsApp
}
packageName.contains("instagram") -> {
// Usuario eligió Instagram
}
// etc...
}
}
}
}
Das Problem, das ich dabei habe, ist, dass ich davon abhängig bin, wie die Zielanwendung konfiguriert ist. Normalerweise erhalte ich beim Teilen und Zurückkehren einen Ergebniscode vom Typ RESULT_CANCELLED. Gibt es einen? Wie erkennt man, wann es gedrückt wird, bevor zur Ziel-App navigiert wird?

Top