Sobes.tech
Junior

Оё имкон дорад аксро тавассути Intent интиқол дод?

sobes.tech AI

Ҷавоб аз AI

Бале, имконпазир аст.

  1. Трансмиссияи URI: роҳи маъмул ва муассиртарин ин аст, ки URI-и файли аксро интиқол диҳед.

    val imageUri = Uri.fromFile(File(imagePath)) // imagePath - роҳ ба файл
    val shareIntent = Intent(Intent.ACTION_SEND).apply {
        type = "image/*" // Намуди MIME-и тасвир
        putExtra(Intent.EXTRA_STREAM, imageUri) // Трансмиссияи URI
        addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) // Додани ҳуқуқи хондан ба URI
    }
    startActivity(Intent.createChooser(shareIntent, "Шарики акс"))
    
  2. Трансмиссияи Bitmap (намуда барои тасвирҳои калон тавсия намешавад): Шумо метавонед Bitmap-ро сериализатсия кунед ва онро дар Extra гузоред. Аммо, ин барои тасвирҳои калон тавсия намешавад, зеро маҳдудиятҳои андозаи extras-и Intent (одатан то 1 МБ) ва эҳтимоли OutOfMemoryError вуҷуд дорад.

    val bitmap: Bitmap = ... // Bitmap-и шумо
    val bitmapIntent = Intent(...).apply {
        putExtra("image_bitmap", bitmap) // Bitmap бояд Parcelable бошад
    }
    startActivity(bitmapIntent)
    

Дар вақти қабул:

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

Роҳи беҳтарин барои мубодилаи аксҳо байни барномаҳо истифодаи URI бо додани ҳуқуқи хондан (FLAG_GRANT_READ_URI_PERMISSION), махсусан агар файлҳои медиа дар нигоҳдории дастгоҳ ҷойгир бошанд. Трансмиссияи мустақимии Bitmap тавассути Extra танҳо барои тасвирҳои хеле хурд ё миниатюраҳо мувофиқ аст.