Sobes.tech
Junior

Може ли фотографија да се пошаље преко Intent?

sobes.tech АИ

Одговор од АИ

Da, moguće je.

  1. Prenos URI-ja: Najčešći i najefikasniji način je prenos URI-ja fajla fotografije.

    val imageUri = Uri.fromFile(File(imagePath)) // imagePath - putanja do fajla
    val shareIntent = Intent(Intent.ACTION_SEND).apply {
        type = "image/*" // MIME tip slike
        putExtra(Intent.EXTRA_STREAM, imageUri) // Prenos URI-ja
        addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) // Davanje prava za čitanje URI-ja
    }
    startActivity(Intent.createChooser(shareIntent, "Podeli sliku"))
    
  2. Prenos Bitmap-a (ne preporučuje se za velike slike): Možete serializovati Bitmap i staviti ga u Extra. Međutim, to se ne preporučuje za velike slike zbog ograničenja veličine extras u Intentu (obično do 1 MB) i potencijalne OutOfMemoryError.

    val bitmap: Bitmap = ... // Vaš Bitmap
    val bitmapIntent = Intent(...).apply {
        putExtra("image_bitmap", bitmap) // Bitmap mora biti Parcelable
    }
    startActivity(bitmapIntent)
    

Prilikom primanja:

val receivedBitmap: Bitmap? = intent.getParcelableExtra("image_bitmap")

Najbolji pristup za razmenu fotografija između aplikacija je korišćenje URI-ja sa pravima za čitanje (FLAG_GRANT_READ_URI_PERMISSION), posebno ako se radi o medijskim fajlovima koji su smešteni u skladištu. Direktno prenošenje Bitmap-a putem Extra je pogodno samo za veoma male slike ili minijature.