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

Java ME Discussion :

Intéraction entre MIdlets


Sujet :

Java ME

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    juin 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Intéraction entre MIdlets
    Bonjour,

    Je cherche à créer deux MIDlets (que l'on appellera A et B), qui seront dans des suites différentes. La Midlet A comprend un RecordStore. J'aimerai que lorsque A fait une certaine opération sur le RecordStore, B en soit informé.

    Je pense que pour faire cela, il faut que A communique l'instance du RecordStore à B, et comme à la base A ne connait pas B, il faut que B "s'enregistre" auprès de A.
    J'aimerai savoir si il y a un moyen de récupérer une instance des MIDlets disponibles sur un système (pour que B puisse voir l'instance de la MIdlet A, pour ensuite s'y enregistrer), et comment les faire communiquer pour pouvoir faire le schéma décrit avant.

    Je ne sais pas si je suis assez clair, ni si mon raisonnement est la bonne voie pour arriver au résultat. Voila, si vous avez des idées pour m'aider...

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    juin 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    J'ai trouvé une partie de la réponse. Une MIDlet peut accéder au RecordStore d'une autre MIDlet Suite. Mais pour cela, la MIDlet B doit connaitre le nom du RecordStore. Or, je voudrai que ce soit la MIDlet A qui lui donne le nom du RecordStore (la MIDlet B ne connait pas le nom du recordstore avant), donc si quelqu'un sait comment faire communiquer deux MIDlets de suites différentes, il sera le bienvenu.

    Merci.

  3. #3
    Membre éprouvé
    Inscrit en
    juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : juin 2006
    Messages : 795
    Points : 1 170
    Points
    1 170
    Par défaut
    Tu devrai pouvoir lister tous les recordStores de la midletSuite avec la midlet B en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String[] records = RecordStore.listRecordStores();
    tu obtiendra un array de String correspondant aux recordStore existant pour la midletSuite

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    juin 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : juin 2004
    Messages : 187
    Points : 239
    Points
    239
    Par défaut
    Sauf qu'il a précisé que ses midlets sont dans des suites différentes, ça rend donc la solution de Anikinisan impossible.
    Ce comportement est volontaire en java, ce genre de limitation a été mis il me semble pour des raisons de sécurité. C'est un firewall entre applications mis en place par l'AMS de java ME

  5. #5
    Membre éprouvé
    Inscrit en
    juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : juin 2006
    Messages : 795
    Points : 1 170
    Points
    1 170
    Par défaut
    Mais es-tu obligé de mettre ces deux midlets dans des suites différentes ?
    Sinon, si tu me dit que l'on peut quand même accéder à un recordStore d'une autre Midlet en connaissant son nom pourquoi ne donnes-tu pas un nom fixe à ce recordStore ? Et si tu veux un nom dynamique, tu pourrai stocker ce nom dans un recordStore qui lui aurai un nom fixe.(tu pourrai même crypté le nom du recordStore stocké si tu as besoin de sécurité)

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    juin 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour vos réponses

    Oui, je suis obligé de mettre ces deux MIDlets dans des suites différentes.
    J'ai opté pour la solution de donner un nom fixe au RecordStore partagé (en lecture). J'y accède en utilisant la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    openRecordStore(MIDletName, VendorName, MIDletSuiteName)
    Par contre, lorsque la MIDlet A ajoute un élément dans ce recordStore, la MIDlet B dois en être informée. J'ai donc fait implémenter la MIDlet B de la classe RecordListener et j'ai ajouté ce listener au recordStore, jusque là pas de problème.

    Je teste ces MIDlets sur un PDA avec Windows Mobile 5, mais le problème c'est que je n'ai trouvé aucun MIDlet Manager pouvant lancer plusieurs MIDlets en même temps. Si je lance la première MIDlet, puis la seconde, les résultats affichés sont cohérents (au démarrage, la MIDlet B met bien à jour ses informations en fonction du recordStore) mais je ne peux pas voir la mise à jour de la MIDlet B grâce au RecordListener quand la MIDlet A viens d'ajouter un élément. (Si je lance deux Managers, ça ne fonctionne pas. Je suppose que chaque Manager a sa propre liste de RecordStore donc ce ne sont pas les mêmes).

    L'idée est que ces deux MIDlets doivent tourner en parallèle. Si quelqu'un connait un petit programme permettant de faire tourner simultanément deux MIDlets, merci de me dire ce que c'est .

    PS : J'ai testé JBed, Intent Midlet Manager et IBM MIDP 2.0.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    juin 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je pense que ce que je veux faire n'est tout simplement pas possible. Il n'y a aucun moyen à priori de faire tourner simultanément deux MIDlets qui interagissent ensemble. Merci à ceux qui m'ont répondu.

Discussions similaires

  1. [AC-2010] Intéraction entre Formulaires ?
    Par Mailgifson dans le forum IHM
    Réponses: 4
    Dernier message: 16/11/2010, 21h35
  2. intéraction entre deux formulaires
    Par radahm dans le forum IHM
    Réponses: 7
    Dernier message: 05/03/2009, 15h10
  3. Réponses: 14
    Dernier message: 22/07/2007, 18h02
  4. Réponses: 1
    Dernier message: 24/05/2006, 12h10
  5. Réponses: 2
    Dernier message: 13/03/2006, 17h25

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