IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

USB sous divers intent


Sujet :

Android

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut USB sous divers intent
    Bonjour à tous,

    j,ai un qui, lorsqu'il démarre, load une classe static nommée "accessory". "accessory" me permet d'envoyer des données sur le port USB.

    Maintenant tout cela fonctionne bien tant que je reste dans la page de démarrage. Lorsque je change l'affichage, je suis alors dans une classes différentes qui n'existait pas au départ et je n,ai plus acces à "accessory" pourtant la classe est static.

    J,ai pensé utiliser parcelable pour envoyer l'object à mes autres classes, mais ca me semble une mauvaise idée.

    Que me suggérez vous de faire?

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Si elle est statique, tu es sensé pouvoir l'utiliser!

    Pour ta question, regarde ce lien : http://www.developpez.net/forums/d13...e/#post7528556

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    C'est ce que je pensais, mais l'objet revoie bien NULL comme valeur. Dans mon autre view.

    Je vais vous donner un peu plus de détails et peut-être allez vous trouver une solution.

    Dans ma Classe de départ:

    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
    public class MainActivity extends FragmentActivity implements ActionBar.TabListener {
    public static Acces accessory = null; //initialisation de l'objet en static!
     
     
    //blablabla... plein de lignes de codes....
     
    accessory = loadAccessory(device); //appelle de la fonction qui retourne mon objet.. ici tout est ok. Je peux utiliser "accessory"
     
     
    //voici la dite fonction (pardon ... méthode)
    public Acces loadAccessory(UsbDevice device) {
        	/* Load the correct class for the USB device detected */
        	Acces monAccessoire = Acces.loadAccessory(this.getApplicationContext(), device, handler);
        	setTitle(monAccessoire.getDeviceTitle());
     
        	return monAccessoire;
        }
     
    }

    La classe Access est la suivante. Elle est abstract et sert à ouvrir la bonne classe.

    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
    public abstract class Acces implements AccesInterface { 
     
    	public static Acces loadAccessory(Context context, UsbDevice device, Handler handler){
     
    		//Check the USB device which kind it is
    		if((device.getVendorId() == (int)0x04D8) && (device.getProductId() == (int)0xF777)) {
    			return new HID1(context, device, handler);
    		}
    		if((device.getVendorId() == (int)0x04D8) && (device.getProductId() == (int)0xF778)) {
    			return new HID2(context, device, handler);
    		}
    		if((device.getVendorId() == (int)0x04D8) && (device.getProductId() == (int)0xF779)) {
    			return new HID3(context, device, handler);
    		}
     
    		return null;
    	}
     
    }
    Voici un exemple de classe HID1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class HID1 extends Acces implements Runnable, AccesInterface {
     
     
    ... object, fields, et méthodes.
    }
    Je dois donc accéder à l'objet de la classe HID1 qui se nomme "accessory" dans la MainActivity view.

    Le problème arrive lorsque je clique sur un bouton qui m'amène dans une autre view

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Intent intent = new Intent(getActivity(), SecondeVueSwipeViews.class);
    A l'intérieur de cette classe, si j'essaie d'accéder à MainActivity, il n,est plus disponible (lifeCycle des activitées android) et je ne sais pas comment accéder à la l'objet "accessory" sans passer par MainActivity.

    Voilà.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Petit ajout.

    Si l'objet "accessory" est déclarer dans une nested static class... est-ce que cela peut faire en sorte qu'il ne peut pas être accédé dans une autre classe qui n'est pas partie de la même outer class??

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut SOLVED
    Ahhhh!! J'ai trouvé le problème

    J'avais ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @Override
        public void onPause(){
     
        	if(accessory != null){
        		accessory.close();
        	}
        	accessory = null;
     
        	/*unregister any receivers that we have */
     
        	super.onPause();
        }
    Maintenant l'object static ne retourne plus null!

Discussions similaires

  1. comment établir une liaison usb sous visual c++ ?
    Par Baby_Chou dans le forum MFC
    Réponses: 2
    Dernier message: 03/02/2005, 08h31
  2. Pas de detection usb sous win 98 second edition
    Par LRobi dans le forum Windows 2000/Me/98/95
    Réponses: 3
    Dernier message: 30/01/2005, 19h39
  3. Problème Clé USB sous Fedora Core 2
    Par PeGaZe dans le forum Matériel
    Réponses: 5
    Dernier message: 18/11/2004, 13h41
  4. Piloter un port USB sous xp [robotique]
    Par blacknight dans le forum C++Builder
    Réponses: 2
    Dernier message: 01/11/2004, 12h15
  5. Réponses: 2
    Dernier message: 27/02/2003, 01h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo