Как разрешить странные и неполные Uri и Path, полученные при прямой передаче изображения из галереи Android в мое приложAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как разрешить странные и неполные Uri и Path, полученные при прямой передаче изображения из галереи Android в мое прилож

Сообщение Anonymous »

Я написал на Kotlin функцию для приложения Flutter, позволяющую обмениваться мультимедийными файлами непосредственно из галереи телефона Android в приложении.
Отлично работает на многих протестированных мной устройствах, таких как Realme 3. Pro, Oneplus 6t, Samsung m40.
Но для Asus Zenfone Max Pro M2 при совместном использовании любого медиафайла получался странный и неполный URI и путь
Журналы из кода Kotlin

D/URI
== ===(26032) : content://com.android.providers.downloads.documents/document/624


D/Path =====(26032): /document/624

Код Kotlin

Код: Выделить всё

override fun onAttachedToActivity(binding: ActivityPluginBinding) {
this.binding = binding
binding.addOnNewIntentListener(this)
handleIntent(binding.activity.intent, true)
}
----------------------------------------------------------------------
private fun handleIntent(intent: Intent, initial: Boolean) {
when {
(intent.type?.startsWith("text") != true)
&& (intent.action == Intent.ACTION_SEND
|| intent.action == Intent.ACTION_SEND_MULTIPLE) -> { // Sharing images or videos

val value = getMediaUris(intent)
if (initial) initialMedia = value
latestMedia = value
eventSinkMedia?.success(latestMedia?.toString())
}
...
----------------------------------------------------------------------
private fun getMediaUris(intent: Intent?): JSONArray? {
if (intent == null) return null

return when (intent.action) {
Intent.ACTION_SEND -> {
val uri = intent.getParcelableExtra(Intent.EXTRA_STREAM)
Log.d("URI =====",uri)
val path = uri?.let{ FileDirectory.getPathFromUri(applicationContext, it) } ?: uri?.path
Log.d("Path =====",path)
if (path != null) {
...
Информация об устройстве

Код: Выделить всё

Device Name: Asus Zenfone Max Pro M2
Android Version: 9
External SD card: present
Как разрешить этот URI и получить правильный путь с именем файла и расширением?

Подробнее здесь: https://stackoverflow.com/questions/709 ... -sharing-i
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»