Aller au contenu

Double demande pour allumer le bluetooth


Recommended Posts

Bonjour,

Je rencontre un problème - non sans blagues ? J'ai quelques bases sous Android, mais suite à un projet de cours j'ai décidé d'"améliorer" - grand mot - une application déjà existante : MindDroid. Une application qui permet de commander un robot Lego MindStorm par la liaison Bluetooth. Etant donné que le Bluetooth m'est totalement inconnu et que je ne suis qu'aux prémices du développement sous Android, j'ai décidé - avec l'accord des professeurs - d'utiliser les fichiers Bluetooth de l'application officielle (sous licence GLU) et de faire les liens ensuite avec mon application.

Le "portage" c'est plutôt bien passé, je n'ai pas de FC pour l'instant. Cependant, je remarque que quand je lance mon application, DEUX demandes pour allumer le Bluetooth démarrent. Or il y a un événement au cas-où on refuserait d'allumer le bluetooth. Il y a donc un conflit puisque quand je refuse une l'autre reste. Pour allumer le bluetooth, je dois accepter les deux et alors DEUX listes de connexion BT démarrent.

J'ai regardé dans le LogCat et voici ce qui apparaît :

05-01 12:33:17.656: INFO/ActivityManager(1700): Starting: Intent { cmp=com.menu/.Accel } from pid 17612
05-01 12:33:17.671: INFO/WindowManager(1700): Setting rotation to 1, animFlags=1
05-01 12:33:17.687: INFO/ActivityManager(1700): Config changed: { scale=1.0 imsi=208/20 loc=fr_FR touch=3 keys=2/1/2 nav=2/2 orien=2 layout=34 uiMode=17 seq=62 themeResource=null}
05-01 12:33:17.734: INFO/PowerWidget(1755): Clearing any old widget stuffs
05-01 12:33:17.741: INFO/PowerWidget(1755): Setting up widget
05-01 12:33:17.741: INFO/PowerWidget(1755): Button list: toggleMobileData|toggleNetworkMode|toggleBluetooth|toggleSound
05-01 12:33:17.741: INFO/PowerWidget(1755): Setting up button: toggleMobileData
05-01 12:33:17.741: INFO/PowerWidget(1755): Setting up button: toggleNetworkMode
05-01 12:33:17.757: INFO/PowerWidget(1755): Setting up button: toggleBluetooth
05-01 12:33:17.757: INFO/PowerWidget(1755): Setting up button: toggleSound
05-01 12:33:17.796: INFO/ActivityManager(1700): Starting: Intent { act=android.bluetooth.adapter.action.REQUEST_ENABLE cmp=com.android.settings/.bluetooth.RequestPermissionActivity } from pid 17612
05-01 12:33:17.835: INFO/ActivityManager(1700): Starting: Intent { act=android.bluetooth.adapter.action.REQUEST_ENABLE cmp=com.android.settings/.bluetooth.RequestPermissionActivity } from pid 17612
05-01 12:33:17.866: INFO/ActivityManager(1700): Start proc com.android.settings for activity com.android.settings/.bluetooth.RequestPermissionActivity: pid=17622 uid=1000 gids={3003, 3002, 3001, 1015}
05-01 12:33:17.882: INFO/ActivityManager(1700): Displayed com.menu/.Accel: +217ms

Les deux endroits où apparaissent REQUEST_ENABLE sont ici :

@Override
protected void onStart() {
   super.onStart();

   if (!BluetoothAdapter.getDefaultAdapter().isEnabled()) {
       showToast("Allumage du Bluetooth");
       Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
       startActivityForResult(enableIntent, REQUEST_ENABLE_BT);

   } else {
       selectNXT();
   }
}

et

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
   switch (requestCode) {
      [...]
       case REQUEST_ENABLE_BT:

           // When the request to enable Bluetooth returns
           switch (resultCode) {
               case Activity.RESULT_OK:
                   btOnByUs = true;
                   selectNXT();
                   break;
               [...]
           }
   }

PS : Je peux fournir le dossier du projet si cela peux aider.. Projet officiel : https://github.com/NXT/LEGO-MINDSTORMS-MINDdroid

Je vous remercie d'avance,

Quentin

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

Bonsoir,

Je poste une nouvelle fois pour vous faire part des nouvelles et demander une aide inespérée, quelques jours avant la date de passage de mon épreuve. J'ai toujours le même problème, mais j'ai remarqué que le problème s'appliquait à toute la méthode onStart() car quand le BT est déjà allumé avant que l'application ne le demande, la page de connexion BT s'affiche mais encore une fois... DEUX fois.

Je vous remercie d'avance pour ne serait-ce qu'un quelconque intérêt que vous apporterai à ma demande,

Quentin himself

EDIT : J'ai passé mes épreuves, je n'ai donc plus accès au robot mais si jamais vous trouvez une piste, je suis preneur ! Pour voir le projet en entier : http://mindstorm.e-monsite.com

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...