createPrintDocumentAdapter替换

时间:2016-02-08 01:30:42

标签: android printing

在构建我的android项目时,我发出警告,“newPrintDocumentAdapter”已被弃用。它是WebView上的一种方法。

我一直在寻找,但一直无法找到预期的替代品。任何人都可以对此有所了解吗?

谢谢, 杰森

2 个答案:

答案 0 :(得分:6)

根据Javadoc for createPrintDocumentAdapter()

  

此方法在API级别21中已弃用。

     

使用createPrintDocumentAdapter(String),要求用户提供打印文档名称。

因此,如果你需要支持< API 21继续使用当前方法,但在API 21+设备上,请使用createPrintDocumentAdapter(String)

答案 1 :(得分:4)

根据接受的答案和official example

@SuppressWarnings("deprecation")
private static void createWebPrintJob(Context context, WebView webView) {

    // Get a PrintManager instance
    PrintManager printManager = (PrintManager) context.getSystemService(Context.PRINT_SERVICE);

    String jobName = context.getString(R.string.app_name) + " Document";

    // Get a print adapter instance
    PrintDocumentAdapter printAdapter;
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        printAdapter = webView.createPrintDocumentAdapter(jobName);
    }
    else {
        printAdapter = webView.createPrintDocumentAdapter();
    }

    // Create a print job with name and adapter instance

    PrintJob printJob = printManager.print(jobName, printAdapter,
            new PrintAttributes.Builder().build());

    // Save the job object for later status checking
    mPrintJobs.add(printJob);

}