似乎使用 API32+,contentResolver 不再适用于 MMS 附件

问题描述 投票:0回答:0

似乎使用 API32,contentResolver 不再适用于 MMS 附件

val partURI = Uri.parse("content://mms/part/$partId")
val inputStream = context.contentResolver.openInputStream(partURI)

inputStream?.let { inputStream2 ->
    val file = File(context.getExternalFilesDir(null), fileName)
    FileOutputStream(file).use { outputStream ->
        val buffer = ByteArray(1024)
        var read: Int
        while (inputStream.read(buffer).also { read = it } != -1) {
            outputStream.write(buffer, 0, read)
        }
    outputStream.flush()
    }
}
inputStream?.close()

尝试打开 InputStream 导致异常:java.io.FileNotFoundException:找不到列 _data。

有人知道如何使用 API 33 从 MMS 部件(附件)读取数据吗?

在清单中我有:

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>

我动态请求所有关键权限:

android mms android-mms
© www.soinside.com 2019 - 2024. All rights reserved.