Junior
É possível enviar uma fotografia através de um Intent?
sobes.tech IA
Resposta da IA
Sim, é possível.
-
Transferência de URI: A forma mais comum e eficaz é transferir o URI do arquivo de fotografia.
val imageUri = Uri.fromFile(File(imagePath)) // imagePath - caminho para o arquivo val shareIntent = Intent(Intent.ACTION_SEND).apply { type = "image/*" // Tipo MIME da imagem putExtra(Intent.EXTRA_STREAM, imageUri) // Transferência de URI addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) // Conceder permissões de leitura para o URI } startActivity(Intent.createChooser(shareIntent, "Partilhar imagem")) -
Transferência de Bitmap (não recomendado para imagens grandes): Pode serializar o Bitmap e colocá-lo num Extra. No entanto, não é recomendado para imagens grandes devido às limitações no tamanho dos extras do Intent (normalmente até 1 MB) e ao potencial OutOfMemoryError.
val bitmap: Bitmap = ... // O seu Bitmap val bitmapIntent = Intent(...).apply { putExtra("image_bitmap", bitmap) // O Bitmap deve ser Parcelable } startActivity(bitmapIntent)Ao receber:
val receivedBitmap: Bitmap? = intent.getParcelableExtra("image_bitmap")
A melhor abordagem para trocar fotos entre aplicações é usar URI com permissão de leitura (FLAG_GRANT_READ_URI_PERMISSION), especialmente se os ficheiros de mídia estiverem armazenados no armazenamento. A transferência direta de Bitmap via Extra é adequada apenas para imagens muito pequenas ou miniaturas.