Как подключить сетевой принтер через Android?

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

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

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

Ответы

Ответ 1

Любое устройство, подключенное к сети, будет связываться через свои 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();
    } 

Ответ 2

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

Ответ 3

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

Ответ 5

Просто добавьте этот код после метода oncreate

if (android.os.Build.VERSION.SDK_INT > 9) {
    StrictMode.ThreadPolicy policy = 
        new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
}