roly Posted May 17, 2010 Share Posted May 17, 2010 Bonjour, j'ai un gros problème qui m'ennuie vraiment beaucoup avec le bluetooth. En gros: J'ai un composant bluetooth constitué d'un bouton. Si le bouton est appuyé, le device est allumé et donc détectable par BT. Ce que je cherche à faire: Lors du premier clic, je fais l'appareillage. (Donc je me connecte au device, définit un socket que je connecte. Je reçois un message de confirmation) Puis le device s'éteint. (On relache le bouton) Deuxième clic: Le device se rallume et envois un message. Où j'en suis: Tout marche jusqu'au deuxième clic. C'est à dire que je suis connecté, et que je reçois bien mon message de confirmation du premier clic. Mon problème: Ben le deuxième clic. Le problème étant que j'ai un socket, et que le device s'est éteint puis rallumé. Que faire pour à nouveau lire dans inputstream? Si j'essaye de lire cash dans le socket: device busy Si je relance socket.connect(): 05-17 03:39:56.938: ERROR/BluetoothEventLoop.cpp(92): onDiscoverServicesResult: D-Bus error: org.bluez.Error.Failed (Connection timed out) 05-17 03:39:56.948: ERROR/waitFor(15236): java.io.IOException: Service discovery failed Si je refait toute l'initialisation du socket,(C'est à dire BTDevice.createRfcommSocket...) Meme chose. private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); public void init(){ BluetoothSocket tmp = null; try { /*Method m = mmDevice.getClass().getMethod("createRfcommSocket", new Class[] { int.class }); tmp = (BluetoothSocket)m.invoke(mmDevice, Integer.valueOf(1));*/ tmp = mmDevice.createRfcommSocketToServiceRecord(MY_UUID); } catch (IOException e) { Log.e("init", e.toString()); } mmSocket=tmp; try{ output = new PrintStream(mmSocket.getOutputStream()); input = new BufferedReader(new InputStreamReader(mmSocket.getInputStream())); }catch (IOException e) { Log.e("Init",e.toString()); } } Ce que je fais (plus ou moins, vu le nombre de tests que j'ai fait...) au moment du deuxieme clic: init(); try { mmSocket.connect(); } catch (IOException connectException) { Log.e("waitFor",connectException.toString()); } Help :mad: Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.