37 votes

Utilisez une imprimante Bluetooth de poche avec Android

J'ai un ordinateur de Poche bluetooth de l'imprimante que je suis capable de communiquer à l'aide d'un SPP connexion à partir de mon Mac(en utilisant Coolterm). Quand je suis en train de faire de même à partir d'Android (à l'aide de la plateforme 7) je suis en cours d'exécution dans plusieurs questions:

  • L'imprimante ne semble pas à l'appui de/besoin de l'Authentification par code PIN. Lors de la connexion à partir de OSX, j'ai juste sélectionné l'option qui dit "Ne pas utiliser un code pin" et il s'est jumelé. Dans Android, lorsque j'utilise device.createRfcommSocketToServiceRecord(), il finit toujours par me demander un code PIN/Touche(je n'en ai pas/besoin). J'ai résolu ce problème en utilisant la réflexion truc:

    Method m = device.getClass().getMethod("createInsecureRfcommSocket", new Class[] {int.class});
    BluetoothSocket connection = (BluetoothSocket) m.invoke(device, 1);
    

    Je ne suis pas sûr de savoir si cela a fonctionné, mais le clignotement de la LED sur l'imprimante s'arrête de clignoter, ce qui me fait croire qu'il a fait.

  • Une fois que j'ai le socket, j'essaie d'écrire des octets de données dans le flux de l'aide:

    byte[] buffer = new byte[3];
    buffer[0] = (byte) 0x8A;
    buffer[1] = (byte) 0xC1;
    buffer[2] = (byte) 0x04;
    outStream.write(buffer);
    int response = inStream.read();
    mySocket.close();
    

    L'envoi de la même séquence d'octets à partir de Coolterm sur OSX imprimé une page de test à partir de l'imprimante. Cependant, ce qui semble rendre le fil pendre sur Android(le lire).

Est-il quelque chose qui me manque ici?

EDIT: Cela semble fonctionner seulement lorsque j'ai mis le canal 1. Donc cela signifie que je suis sur quelque chose ici.

-6voto

A T Points 1483

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X