Junior
Vai ar iespējams nosūtīt foto caur Intent?
sobes.tech AI
Atbilde no AI
Jā, tas ir iespējams.
-
URI pārsūtīšana: Visbiežāk un efektīvākā metode ir pārsūtīt attēla faila URI.
val imageUri = Uri.fromFile(File(imagePath)) // imagePath - ceļš uz failu val shareIntent = Intent(Intent.ACTION_SEND).apply { type = "image/*" // MIME tips attēlam putExtra(Intent.EXTRA_STREAM, imageUri) // URI pārsūtīšana addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) // piešķirt lasīšanas tiesības URI } startActivity(Intent.createChooser(shareIntent, "Dalīties ar attēlu")) -
Bitmap pārsūtīšana (neiesaka lieliem attēliem): Var serializēt Bitmap un ievietot to Extra. Tomēr tas nav ieteicams lieliem attēliem, jo ir ierobežojumi Intent extras izmēram (parasti līdz 1 MB) un potenciāla OutOfMemoryError risks.
val bitmap: Bitmap = ... // Jūsu Bitmap val bitmapIntent = Intent(...).apply { putExtra("image_bitmap", bitmap) // Bitmap jābūt Parcelable } startActivity(bitmapIntent)
Saņemot:
val receivedBitmap: Bitmap? = intent.getParcelableExtra("image_bitmap")
Labākais veids, kā apmainīties ar fotogrāfijām starp lietojumprogrammām, ir izmantot URI ar lasīšanas tiesībām (FLAG_GRANT_READ_URI_PERMISSION), īpaši, ja multimediju faili ir glabāti atmiņā. Tiešā Bitmap pārsūtīšana caur Extra ir piemērota tikai ļoti mazām bildēm vai miniaturām.