#android #kotlin #apollo-android
Вопрос:
Я получаю URI содержимого из getContent и хочу преобразовать его в FileUpload
object upload : FileUpload(mimetype) {
override fun contentLength(): Long {
TODO("return contentLength here")
}
override fun fileName(): String? {
TODO("return fileName to use in the multipart request here")
}
override fun writeTo(sink: BufferedSink) {
TODO("write the data here")
}
}
Комментарии:
1. Используйте
DocumentFile
для получения длины и отображаемого имени. ИспользуйтеContentResolver
иopenInputStream()
для полученияInputStream
, чтобы использовать, чтобы получить данные для записи вBufferedSink
. Это очень напоминает создание OkHttp/ДооснащениеRequestBody
для контентаUri
, и это описано в этом сообщении в блоге и в этом сообщении в блоге .2. как записать в буферную ссылку из входного потока
3. Это описано в обоих сообщениях в блоге, на которые я ссылался. Позвоните
writeAll()
поBufferedSink
телефону .