2011-01-02 11 views
7

Chciałbym dodać druk bezprzewodowy do mojej aplikacji Android 2.2, która jest przeznaczona dla tabletu Galaxy. Widzę, że przeglądarka internetowa ma opcję drukowania, więc zakładam, że hak aktywności musi istnieć, i miałem nadzieję, że ktoś to odkrył. Znalazłem możliwość korzystania z aplikacji PrinterShare z Mobile Dynamix, ale wolałbym nie wymagać od firmy zewnętrznej.Android Printing API na karcie Galaxy Tab

Oto przykład kodu, który udostępniają w celach informacyjnych.

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

Gdzie:

data_uri - Uri obiektu do druku, takie jak "file: ///sdcard/something.pdf" lub "zawartość: // coś"

data_type - Typ Mime. Obsługiwane są następujące typy MIME: "application/pdf" "text/html" "text/plain" "image/png" "image/jpeg"

+0

Dodanie znacznika "drukowanie" –

Odpowiedz

0

Zastosowanie budować w PrintManager Służby

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()); 
    } 

trzeba ustawić

urlToPrint = "whatUrlToPrint" 
docName = "anyDocumentName";