Bonjour,
J'essaie désepérément de faire un client/serveur tout simple en Bluetooth entre 2 mobiles (Sony/Ericson W810i et Motorola V360v).
J'ai tenté avec l'exemple de Sun fourni avec J2ME Wireless Toolkit: "BluetoothDemo", qui fonctionne parfaitement en émulation mais pas du tout sur les mobiles.
Puis cherchant quelque chose d'encore plus simple, j'ai trouvé cet exemple-ci:
http://www.webpronews.com/topnews/20...h-and-jme-part
Et notamment les sources de l'exemple:
http://www.jasonlam604.com/downloads...emo_source.zip
Mais malgré la simplicité du code, impossible de faire fonctionner le tout.
J'ai rajouté un peu de log pour trouver le problème et donc ça bloque au niveau de:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 public final static String readData(StreamConnection conn) { InputStream input = null; byte[] data = null; try { input = conn.openInputStream(); // Probably want to throw an exception if length is not greater then 0 int length = input.read(); data= new byte[length]; length = 0; // Assemble data while (length != data.length) { int ch = input.read(data, length, data.length - length); if (ch == -1) { throw new IOException("Can't read data"); } length += ch; } } catch (IOException e) { } catch (Exception e) { } finally { // close input stream if (input != null) { try { input.close(); } catch (IOException e) { } } } return new String(data); } }
J'ai eu beau y tourner dans tous les sens, pas moyen de faire une communication aller/retour.
Cependant, le client indique bien avoir trouvé le serveur dans servicesDiscovered(), et le serveur réagit bien à la connection client en continuant après le StreamConnectionNotifier.acceptAndOpen().
Et donc le read() sur l'objet retourné par un openInputStream() sur le retour de acceptAndOpen() bloque.
Je m'y prends pas de la bonne manière ?
Est-il possible qu'un téléphone soit Bluetooth, mais incapable de faire fonctionner un simple client/serveur ?
Y a-t-il d'autres moyens simples pour échanger des données (simples, par exemple une chaîne de caractères) entre 2 mobiles ?
Merci de votre aide,
K.
Edit: En fait c'est peut-être le write qui ne marche pas dans un sens, car ça semble fonctionner à moitié, et de façon complémentaire selon lequel est client ...
Partager