Pregunta

Me gustaría añadir la impresión inalámbrica a Android 2.2 aplicación que se apunta para la tableta Galaxy. Veo que el navegador de Internet tiene una opción de impresión así que estoy asumiendo que debe existir un gancho de actividad, y esperaba que alguien se ha dado cuenta de esto. He encontrado una posibilidad de uso de la aplicación PrinterShare de Mobile Dynamix, pero mi preferencia sería no requieren una tercera parte.

Aquí está el ejemplo de código que proporcionan, apenas para la referencia.

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

Donde:

data_uri - URI del objeto a imprimir, como "archivo: ///sdcard/something.pdf" o "contenido: // algo"

data_type - Tipo de Mime. Los siguientes tipos de MIME son compatibles: "Solicitud PDF" "Text / html" "Texto sin formato" "Image / png" "Image / jpeg"

¿Fue útil?

Solución

Impresión sin embargo, no es compatible con Android. Usted tiene que utilizar una solución de 3 ª parte como Mobile Dynamix, HP iPrint para Android o Send2Printer .

Intentos se describen aquí:

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

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

Otros consejos

Uso construcción en Servicio 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());
    }

Es necesario configurar

urlToPrint = "whatUrlToPrint"
docName = "anyDocumentName";
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top