【发布时间】:2017-09-26 14:44:04
【问题描述】:
我的应用正在使用 PrintManager 进行 PDF 打印。此功能在 Android L 和 M 中运行良好,但在 Android N 下失败。
在 onOptionsItemSelected() 的选项菜单中的非片段活动中调用打印操作。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE);
String jobName = "createPDFReport";
printManager.print(jobName, new InterimReportAdapter(AuditValidation.this, auditObject), new PrintAttributes.Builder().build());
}
Android N 抛出
FATAL EXCEPTION: ec.kat.kataudit, PID: 4052
java.lang.IllegalStateException: Can print only from an activity
at android.print.PrintManager.print(PrintManager.java:525)
at ec.kat.kataudit.AuditValidation.onOptionsItemSelected(AuditValidation.java:124)
at android.app.Activity.onMenuItemSelected(Activity.java:3204)
at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:408)
at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:195)
...
AuditValidation.java:124 指向 printManager.print() 调用。
Activity 扩展了 android.support.v7.app.AppCompatActivity。 编译目标版本为 25,应用正在使用最新的库(截至今天为 25.3.1)。
非常感谢任何想法!
最好的问候!
【问题讨论】:
标签: java android pdf-generation illegalstateexception