Я столкнулся с некоторыми проблемами при загрузке PDF в моем приложении.Не удается открыть некоторые PDF-файлы из-за следующего сообщения (недопустимый формат)
Ошибка = невозможно создать документ: файл не в формате PDF или поврежден
Код для настройки Okhttp:
val file = File(Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), mArgs.docName)
val request = Request.Builder()
.url(mArgs.url)
.addHeader("Authorization", "Bearer $token")
.build()
if (mOkBuilder == null) {
mOkBuilder = OkHttpClient.Builder()
mOkBuilder = mOkBuilder?.
addNetworkInterceptor(mLoadingInterceptor)
mOkHttpClient = mOkBuilder?.build()
}
Код для запроса:
mOkHttpClient?.newCall(request)?.enqueue(object : Callback {
....
....
override fun onRespone(call: Call, response: Response) {
val sink = Okio.buffer(Okio.sink(file))
sink.writeAll(response.body()?.source())
sink.close()
}
Но если я скопирую этот URL в браузере Chrome, Chrome загрузит его, и я смогу открыть его с помощью Google PDF Viewer,Файл также меньше, чем файл, который я скачал из своего кода приложения.Я не знаю, как решить эту проблему, она думает, что это связано с обработкой файла, сохраненным внутри ответного обратного вызова.