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.