Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1795 connectés 

  FORUM HardWare.fr
  Programmation
  Android

  Généralisation de capteur sous Android : problème de listener

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Généralisation de capteur sous Android : problème de listener

n°2244365
Maxwell166​4
Posté le 28-11-2014 à 20:55:29  profilanswer
 

Salut à tous,
 
Je vous explique brièvement mon problème. Je dois développer une application Android qui doit pouvoir obtenir les données de capteurs d'accélération (celui interne au smartphone ou bien un externe via BT par exemple). Le but est d'avoir le moins de couplage possible. Je voudrais qu'un capteur, qu'il soit interne ou externe, soit vu de la même manière par la classe qui va l'utiliser (dans mon cas pour mes premiers tests, la classe principale MainActivity).
 
Mon code contiendra 3 packages :
 
1. Le principal, contenant l'activité principale et instanciera un objet Accéléro Universel.
 
2. Un package de capteurs d'accélération permettant d'instancier un objet "Accéléromètre Universel" en utilisant une interface. Elle a la structure suivante :
2a. Une classe accelero universel abstraite
2b. Une classe accelero interne héritant de 2a., elle implémente SensorEventListener pour recevoir les données du capteur interne (avec un objet Sensor, SensorManager, etc.), tout va bien
2c. Une classe capteur BT héritant de lui aussi de 2a.
2d. Une interface qui est implémentée dans ma classe principale (1) ayant une méthode pour obtenir les données, appelons-là "onAcceleroNewData(float newData)" (dans un premier temps, je ne récupère la valeur que d'un axe). Idéalement, quand de nouvelles données arrivent, le programme ira les chercher dans cette méthode.
 
3. Un package BT server utilisé par 2c. si l'on souhaite utiliser un capteur BT (un peu comme une analogie aux classes Sensor, SensorManager, etc. fourni par Android pour utiliser les capteurs internes). Ce package est en fait déjà codé par un collègue.
 
Voilà le cadre est posé. Pour le moment je n'ai pas codé 2c. je m'occupe uniquement d' "universaliser" mon capteur interne pour qu'il soit possible d'instancier un objet Acceleromètre Universel dans ma classe principale le plus simplement possible.
 
Mon problème est que j'arrive bien à coder le tout sauf la partie "listener" qui permettrait d'aller chercher les données dans "onAcceleroNewData(float newData)". Exactement comme lorsque l'on utilise un capteur interne : le programme va dans une méthode "onSensorChanged(SensorEvent event)". Pour que ça fonctionne, il faut ajouter un listener à l'objet capteur du genre MySensorManager.registerListener().
 
Voilà, comment je pourrais créer un système de listener dans mon cas... je crois qu'une solution est d'utiliser un Handler, ou un Observer, ou autre... bref j'ai des connaissances de base en Java mais mon problème est au-dela de mes compétences actuelles!
 
Un grand merci à celui, celle ou ceux qui m'aideront!


---------------
Intel Core i7 2600K / Corsair H60 / Asus P8P67 Deluxe / Asus GTX 580 DirectCUII / Corsair Vengeance 1866 MHz 2x4 Go CAS9 / NZXT Phantom rouge et blanc / Seasonic X-850 / Corsair Force Series GT 240 Go / Western Digital Caviar Blue 1 To SATA III / Lite-On
mood
Publicité
Posté le 28-11-2014 à 20:55:29  profilanswer
 

n°2244516
Maxwell166​4
Posté le 01-12-2014 à 11:24:08  profilanswer
 

C'est vous qui n'êtes pas plus doués que moi ou c'est moi qui m'exprime mal?!


---------------
Intel Core i7 2600K / Corsair H60 / Asus P8P67 Deluxe / Asus GTX 580 DirectCUII / Corsair Vengeance 1866 MHz 2x4 Go CAS9 / NZXT Phantom rouge et blanc / Seasonic X-850 / Corsair Force Series GT 240 Go / Western Digital Caviar Blue 1 To SATA III / Lite-On
n°2244709
Maxwell166​4
Posté le 02-12-2014 à 22:56:04  profilanswer
 

En fait j'ai trouvé la solution donc c'est tout bon! Merci quand même!


---------------
Intel Core i7 2600K / Corsair H60 / Asus P8P67 Deluxe / Asus GTX 580 DirectCUII / Corsair Vengeance 1866 MHz 2x4 Go CAS9 / NZXT Phantom rouge et blanc / Seasonic X-850 / Corsair Force Series GT 240 Go / Western Digital Caviar Blue 1 To SATA III / Lite-On

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Android

  Généralisation de capteur sous Android : problème de listener

 

Sujets relatifs
Problème avec style.visibilityProbleme affichage Nginx <-> PHP
Problème lien Access-MySQLProblème d'appel XML::Parser
Besoin d'aide (résolution d'un probleme sur un programme fini )probleme avec cmd et ftp
table hachage petit problème c++un problème d'un mon programme ?
Requête qui me pose problèmeProblème d'affichage
Plus de sujets relatifs à : Généralisation de capteur sous Android : problème de listener


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR