Ответ
В Android можно передавать изображения между приложениями несколькими способами:
- Intent с EXTRA_STREAM – через Intent.ACTION_SEND:
val intent = Intent(Intent.ACTION_SEND).apply {
type = "image/*"
putExtra(Intent.EXTRA_STREAM, uri)
flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
}
startActivity(Intent.createChooser(intent, "Share image"))
-
ContentProvider – для доступа к файлам через URI с временными разрешениями (FLAG_GRANT_READ_URI_PERMISSION).
-
FileProvider – безопасная передача файлов между приложениями:
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.example.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
- ClipData – через буфер обмена:
val clipData = ClipData.newUri(contentResolver, "Image", uri)
clipboardManager.setPrimaryClip(clipData)
- Прямая передача байтов через Socket, Bluetooth или другие IPC-механизмы (редко используется для изображений).