Android -Druck -API auf der Galaxie -Registerkarte
Frage
Ich möchte meiner Android 2.2 -Anwendung, die für das Galaxy -Tablet ausgerichtet ist, einen drahtlosen Druck hinzufügen. Ich sehe, dass der Internetbrowser eine Druckoption hat, daher gehe ich davon aus, dass ein Aktivitätshaken existieren muss, und ich hatte gehofft, dass jemand dies herausgefunden hat. Ich habe die Möglichkeit mit der Printershare -Anwendung von Mobile Dynamix gefunden, aber meine Präferenz wäre, keine Drittanbieter zu erfordern.
Hier ist das Code -Beispiel, das sie bereitstellen, nur als Referenz.
Intent i = new Intent(Intent.ACTION_VIEW);
i.setPackage("com.dynamixsoftware.printershare");
i.setDataAndType(data_uri, data_type);
startActivity(i);
Wo:
Data_uri - URI des zu druckenen Objekts wie "Datei: ///sdcard/something.pdf" oder "content: // etwas"
Data_Type - MIME -Typ. Die folgenden MIME -Typen werden unterstützt: "Anwendung/PDF" "Text/HTML" "Text/Plain" "Bild/PNG" "Bild/JPEG"
Lösung
Das Druck wird noch nicht auf Android unterstützt. Sie müssen eine Drittanbieterlösung wie Mobiledynamix verwenden. HP iprint für Android oder Send2printer.
Absichten werden hier beschrieben:
Andere Tipps
Verwenden Sie Build In Printmanager -Service
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());
}
Sie müssen einstellen
urlToPrint = "whatUrlToPrint"
docName = "anyDocumentName";