Как подключить сетевой принтер через Android? - PullRequest
13 голосов
/ 10 июня 2011

Я хочу закодировать приложение для Android, которое подключится к сетевому принтеру с определенным IP-адресом, а затем выполнит печать.

Для печати я знаю, что мне нужно написать свой собственный Postscript для конкретноготипы файлов, и подключение к сети не проблема по WIFI.

Как подключиться к сетевому принтеру?

Ответы [ 6 ]

14 голосов
/ 27 ноября 2012

Любое устройство, подключенное к сети, будет связываться через свои IP и порты / сокеты. Самый простой способ подключиться через telnet или сокет и записать данные в их буферы сокетов.

try 
    {
    Socket sock = new Socket("192.168.1.222", 9100);
    PrintWriter oStream = new PrintWriter(sock.getOutputStream());
        oStream.println("HI,test from Android Device");
        oStream.println("\n\n\n");
        oStream.close();
        sock.close(); 
    }
    catch (UnknownHostException e) 
    {
        e.printStackTrace();
    } 
    catch (IOException e) 
    { 
        e.printStackTrace();
    } 
1 голос
/ 28 марта 2017

Просто добавьте этот код после создания метода

if (android.os.Build.VERSION.SDK_INT > 9) {
    StrictMode.ThreadPolicy policy = 
        new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
}
1 голос
/ 10 июня 2011

Возможно, вы сможете использовать lpdspooler , то есть если принтер поддерживает LPR / LPD. Если вы можете дать более подробную информацию об окружающей среде (принтер и т. Д.), Я мог бы дать больше информации.

0 голосов
/ 29 ноября 2018

Попробуйте использовать PrintManager: https://developer.android.com/training/printing/custom-docs

  private void doPrint() {
    // Get a PrintManager instance
    PrintManager printManager = (PrintManager) getActivity()
            .getSystemService(Context.PRINT_SERVICE);

    // Set job name, which will be displayed in the print queue
    String jobName = getActivity().getString(R.string.app_name) + " Document";

    // Start a print job, passing in a PrintDocumentAdapter implementation
    // to handle the generation of a print document
    printManager.print(jobName, new MyPrintDocumentAdapter(getActivity()),
            null); //
}
0 голосов
/ 10 августа 2012

Star имеет Android SDK с обнаружением портов.Он найдет любой из их принтеров чеков Wi-Fi в вашей сети.http://starmicronics.com/support/SDKDocumentation.aspx

0 голосов
/ 19 декабря 2011

Ну, вы не можете подключить любые устройства напрямую, так как вам потребуется драйвер.есть сторонние приложения, такие как Google Cloud print, которые без проблем работают с Android.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...