Sobes.tech
Junior

Intent vasitəsilə şəkil göndərmək mümkündürmü?

sobes.tech Süni İntellekt

AI-dan cavab

Bəli, mümkündür.

  1. URI-nin ötürülməsi: Ən yaygın və effektiv üsul - şəkil faylının URI-sini ötürmək.

    val imageUri = Uri.fromFile(File(imagePath)) // imagePath - faylın yolu
    val shareIntent = Intent(Intent.ACTION_SEND).apply {
        type = "image/*" // Şəkilin MIME tipi
        putExtra(Intent.EXTRA_STREAM, imageUri) // URI-nin ötürülməsi
        addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) // URI üçün oxuma icazəsi vermək
    }
    startActivity(Intent.createChooser(shareIntent, "Şəkili paylaş"))
    
  2. Bitmap-in ötürülməsi (böyük şəkillər üçün tövsiyə edilmir): Bitmap seriallaşdıra və onu Extra-ya yerləşdirə bilərsiniz. Ancaq, bu, çox böyük şəkillər üçün tövsiyə edilmir, çünki Intent extras-ın ölçü limiti (adətən 1 MB-ə qədər) və OutOfMemoryError riski var.

    val bitmap: Bitmap = ... // Sizin Bitmap
    val bitmapIntent = Intent(...).apply {
        putExtra("image_bitmap", bitmap) // Bitmap Parcelable olmalıdır
    }
    startActivity(bitmapIntent)
    

Qəbul edərkən:

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

Ən yaxşı yanaşma, tətbiqlər arasında şəkilləri mübadilə etmək üçün URI istifadə etmək və oxuma hüquqları verməkdir (FLAG_GRANT_READ_URI_PERMISSION), xüsusən də media fayllar cihazda saxlanılırsa. Bitmap-in birbaşa Extra vasitəsilə ötürülməsi yalnız çox kiçik şəkillər və ya miniatürlər üçün uyğundur.