val client = OkHttpClient()
val request = Request.Builder()
.url(url)
.addHeader("Authorization", "Bearer $token")
.build()
Код: Выделить всё
val response = client.newCall(request).execute()
if (!response.isSuccessful) throw Exception("Failed to download PDF: ${response.code}")
val pdfBytes = response.body?.bytes() ?: throw Exception("Empty PDF data")
// Save to external files
val file = File(getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS), "mail_${System.currentTimeMillis()}.pdf")
FileOutputStream(file).use { it.write(pdfBytes) }
file
}
fun printDownloadedPdf(pdfFile: File) {
if (isFinishing || isDestroyed) return
val uri = FileProvider.getUriForFile(
this@MailDetailActivity,
"com.app.bigfootmail.provider",
pdfFile
)
val printManager = getSystemService(Activity.PRINT_SERVICE) as PrintManager
val printAdapter = PdfPrintDocumentAdapter(this@MailDetailActivity, uri)
printManager.print("", printAdapter, PrintAttributes.Builder().build())
}
FATAL ИСКЛЮЧЕНИЕ: main (Спросите Gemini)
Процесс: com.app.bigfootmail, PID: 32070
java.lang.IllegalStateException: можно печатать только из действия
at android.print.PrintManager.print(PrintManager.java:519)
на com.app.bigfootmail.utils.UtilityKt.printPdfFromUrl(Utility.kt:678)
на com.app.bigfootmail.ui.mails.maildetails.view.MailDetailActivity$setOnViewClick$2$menu$1.onSuccess(MailDetailActivity.kt:272)
at com.app.bigfootmail.ui.bottomsheet.view.AllMailOptionBottomSheet.setOnClicks$lambda$7(AllMailOptionBottomSheet.kt:271)
at com.app.bigfootmail.ui.bottomsheet.view.AllMailOptionBottomSheet.$r8$lambda$58RKQTKVfiiS2qcug8gLXQ3DWL4 (неизвестный источник:0)
at com.app.bigfootmail.ui.bottomsheet.view.AllMailOptionBottomSheet$$ExternalSyntheticLambda3.onClick(D8$$SyntheticClass:0)
at android.view.View.performClick(View.java:8052)
at android.view.View.performClickInternal(View.java:8029)
at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
at android.view.View$PerformClick.run(View.java:31419)
at android.os.Handler.handleCallback(Handler.java:1001)
в android.os.Handler.dispatchMessage(Handler.java:105)
в android.os.Looper.loopOnce(Looper.java:268)
в android.os.Looper.loop(Looper.java:384)
в android.app.ActivityThread.main(ActivityThread.java:8936)
на java.lang.reflect.Method.invoke(собственный метод)
на com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
на com.android.internal.os.ZygoteInit.main(ZygoteInit.java:907)
Подробнее здесь: https://stackoverflow.com/questions/797 ... nt-that-li
Мобильная версия