2011-06-10 24 views
12

Quiero codificar una aplicación de Android, que se conectará a una impresora de red con una dirección IP específica, y luego realizar una impresión.¿Cómo conectar una impresora de red a través de Android?

Para imprimir Sé que tengo que escribir mi propio Postscript para tipos de archivos específicos, y la conexión a una red no es un problema con WIFI.

¿Cómo se conecta a la impresora de red?

+0

¿Ha encontrado una solución para esto? – Kishore

Respuesta

1

Es posible que pueda utilizar lpdspooler, es decir, si la impresora es compatible con LPR/LPD. Si puede dar más detalles sobre el entorno (impresora, etc.), podría brindar más información.

+0

Impresora de prueba es EPSON TM-T88III (Ethernet). Necesito comprobar si es compatible con LPR/LDP. – Fallenlight

+0

https://www-304.ibm.com/support/docview.wss?uid=nas1aeb8bc2140732fb2862569c10078efbb&wv=1 Muestra que la impresora admite LPR. – Fallenlight

+1

Miré en lpdspooler nuevamente, y no parece exactamente lo que quiere, pero veo que su impresora es compatible con LPR y RAW. Encontré [este enlace] (http://code.google.com/p/jprinterface/source/browse/trunk/src/sos/net/print/LPR.java?r=2) a la fuente de un proyecto que envía un trabajo a una impresora a través de LPR en java; Creo que hará exactamente lo que quieras. –

0

Bueno, no puedes conectar ningún dispositivo directamente ya que necesitarás el controlador instalado. hay aplicaciones de terceros como Google Cloud que funcionan sin problemas con Android.

+0

** No **, esta es la forma de windows de microsoft. De hecho, muchos dispositivos ** de buena calidad **, como impresoras, módems, tarjetas de sonido, etc., admiten protocolos de comunicación estándar, por lo que puede conectarse ** sin ningún controlador instalado **. Ver la respuesta aceptada, por ejemplo. – Vassilis

13

Cualquier dispositivo conectado a una red se comunicará a través de su IP y puertos/sockets. La forma más sencilla de conectarse mediante telnet o socket y escribir los datos en sus búferes de socket.

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

¡Funciona como un encanto! – Luis

+0

no funciona para mí? por favor, ayúdame. –

+0

No funcionó para mí también – VVB

0

apenas añade este código después Método alcrear

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