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

Forum für diejenigen, die für Android programmieren
Guest
 Wie kann ich erkennen, auf welche Anwendung im nativen Android-Freigabedialog geklickt wurde?

Post by Guest »

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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post