Вопрос

Я хотел бы добавить беспроводную печать в мое приложение Android 2.2, которое предназначено для планшета Galaxy. Я вижу, что интернет -браузер имеет вариант печати, поэтому я предполагаю, что должен существовать крючок активности, и я надеялся, что кто -то выяснил это. Я нашел возможность использовать приложение PrinterShare от Mobile Dynamix, но я предпочитаю, чтобы не потребовать третью сторону.

Вот пример кода, который они предоставляют, только для справки.

Intent i = new Intent(Intent.ACTION_VIEW);
i.setPackage("com.dynamixsoftware.printershare");
i.setDataAndType(data_uri, data_type);
startActivity(i);

Где:

DATA_URI - URI объекта для печати, например, "File: //sdcard/something.pdf" или "content: // Что -то"

DATA_TYPE - тип MIME. Поддерживаются следующие типы MIME: "Application/PDF" "Text/html" "Text/plain" "Image/png" "Image/jpeg"

Это было полезно?

Решение

Печать еще не поддерживается на Android. Вы должны использовать стороннее решение, такое как Mobile Dynamix, HP iPrint для Android или же Send2printer.

Намерения описаны здесь:

http://www.openintents.org/en/node/735

http://www.openintents.org/en/node/278

Другие советы

Используйте сборку Service Printmanager

private void doWebViewPrint() {
        mWebView = new WebView(PrintActivity.this);
        WebSettings settings = mWebView.getSettings();
        settings.setJavaScriptEnabled(true);
        mWebView.setWebViewClient(new WebViewClient() {

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return false;
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                mProgressBar.setVisibility(View.GONE);
                createWebPrintJob(view);
                mWebView = null;
            }
        });
        mWebView.loadUrl(urlToPrint);
    }

    protected void createWebPrintJob(WebView webView) {
        PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE);
        @SuppressWarnings("deprecation")
        PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter();
        mPrintJob = printManager.print(docName, printAdapter,
                new PrintAttributes.Builder().build());
    }

Вам нужно установить

urlToPrint = "whatUrlToPrint"
docName = "anyDocumentName";
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top