Salut à tous,
Voici mon problème :
J'ai développé une application sur un téléphone (le HTC désire) et j'ai essayé de la passer sous une tablette (samsung galaxy tab).
Chose importante à savoir : le téléphone est sous 2.1 et la tablette sous 2.2.
Mon application utilise un périphérique bluetooth afin d'échanger des données avec l'application.
J'obtiens des différences assez bizarre...
Premièrement, sur la tablette je dois, à chaque nouvelle connexion, renseigner le code d'appairage du périphérique bluetooth (chose que je ne dois pas faire sur le téléphone...).
Normal ?
Deuxièmement, lorsque je quitte l'application depuis la tablette celle ci plante totalement... Alors que sur le téléphone il n'y a aucun probleme.
J'ai repéré le problème cela viens de la socket bluetooth apparement, puisque quand je vire le code associé ça plante plus... (mais mon application devient du coup inutile^^).
Je précise que je ferme proprement la socket après chaque utilisation...
Voici comment j'utilise la socket pour la connexion :
J'ai essayé aussi avec une autre méthode (qui marche sur le téléphone mais qui plante la tablette) :
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 public BluetoothSocket connectTest(String adr) { BluetoothDevice hxm; Method m; try { hxm = BluetoothAdapter.getDefaultAdapter().getRemoteDevice(adr); m = hxm.getClass().getMethod("createRfcommSocket", new Class[]{int.class}); socket = (BluetoothSocket)m.invoke(hxm, Integer.valueOf(1)); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchMethodException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } return socket; } // connectTest
Une idée du problème?
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 public BluetoothSocket connectByAndroid(BluetoothDevice mmDevice) { BluetoothSocket mmSocket=null; UUID myUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); try { // MY_UUID is the app's UUID string, also used by the server code mmSocket = mmDevice.createRfcommSocketToServiceRecord(myUUID); //mmSocket. } catch (IOException e) { io.errorMessage("btcontroler creatRfcom l:154 :"+e.getMessage()); } return mmSocket; } // connectByAndroid
Ce que je comprend absolument pas c'est que toutes ces méthodes marche mais lorsque je quitte le programme ça plante...
Partager