我的应用程序使用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());
}
Run Code Online (Sandbox Code Playgroud)
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)
...
Run Code Online (Sandbox Code Playgroud)
AuditValidation.java:124指向printManager.print()调用.
Activity扩展了android.support.v7.app.AppCompatActivity.编译目标版本为25,app正在使用最新的库(截至今天为25.3.1).
任何想法都非常感谢!
最好的祝福!