Peut-on transmettre une photo via un Intent?
sobes.tech IA
Réponse de l'IA
Oui, c'est possible.
-
Transmission d'URI : La méthode la plus courante et efficace consiste à transmettre l'URI du fichier photo.
val imageUri = Uri.fromFile(File(imagePath)) // imagePath - chemin du fichier val shareIntent = Intent(Intent.ACTION_SEND).apply { type = "image/*" // Type MIME de l'image putExtra(Intent.EXTRA_STREAM, imageUri) // Transmission de l'URI addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) // Accorder les droits de lecture sur l'URI } startActivity(Intent.createChooser(shareIntent, "Partager l'image")) -
Transmission de Bitmap (non recommandé pour les grandes images) : Il est possible de sérialiser le Bitmap et de le placer dans un Extra. Cependant, cela n'est pas recommandé pour les grandes images en raison des limitations de taille des extras d'Intent (généralement jusqu'à 1 Mo) et du risque potentiel OutOfMemoryError.
val bitmap: Bitmap = ... // Votre Bitmap val bitmapIntent = Intent(...).apply { putExtra("image_bitmap", bitmap) // Le Bitmap doit être Parcelable } startActivity(bitmapIntent)Lors de la réception :
val receivedBitmap: Bitmap? = intent.getParcelableExtra("image_bitmap")
La meilleure approche pour échanger des photos entre applications est d'utiliser l'URI avec l'octroi des droits de lecture (FLAG_GRANT_READ_URI_PERMISSION), surtout si les fichiers multimédia sont stockés dans le stockage. La transmission directe de Bitmap via Extra ne convient que pour des images très petites ou des miniatures.