Android Printing API на вкладке Galaxy
Вопрос
Я хотел бы добавить беспроводную печать в мое приложение 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.
Намерения описаны здесь:
Другие советы
Используйте сборку 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";