-
Lancement d'une midlet
Bonjour à tous,
J'ai écumé pas mal de forums et de tutoriaux, sans trouver mon bonheur, je viens donc tenter ma chance ici:
J'ai réalisé une midlet ( appelons la midletA ), qui marche très bien ainsi. J'ai un midletA.jar à ma disposition, et maintenant, j'aimerai crée une midletB, qui lancerait la midletA selon certaines règles (du genre, un évènement clavier).
De ce que j'ai lu, je peux arriver à cela avec PushRegistry.registerConnection().
Mais je n'arrive pas à me dépatouiller des différents fields:
PushRegistry.registerConnection(defaultURL,midletClassName,defaultFilter)
Ma midletA étant sur le même telephone, que dois je mettre comme URL? j'ai essayé localhost, mais je ne sais pas quel protocole je dois lui préciser. De plus, j'ai ajouté mon midletA.jar à mon projet midletB (sous Eclipse, je l'ai fait en modifiant le Java Build Path comme je l'ai vu dans un tutorial), mais il n'a pas l'air de trouver mon jar quand je fais mon appel.
Si vous pouviez m'aider ça serait cool, car là je sèche...
-
Une MIDlet contenue dans une MIDlet suite ne peut pas lancer une MIDlet qui se situe dans une autre MIDlet suite. C'est impossible ....
Tu évoques sur le PushRegistry, mais avec ce PushRegistry, on pourrait uniquement demander sur une connexion entrante l'exécution d'une MIDlet ou programmer le réveil d'une MIDlet après un laps de temps donné. Ce n'est pas ce que tu veux.
-
contournement possible
bidouille : lancer la midlet A à partir de la midlet B en programmant dans B un reveil (PushRegistry.registerAlarm)de A dans la seconde qui suit.
ceci dit le reveil d'application peut poser des problèmes : par exemple, demande de confirmation systèmatique sur les nokia S40.
-
Merci manitoba ;) J'ai utilisé ça, et ça marche. Je me sers du registerAlarm. Je m'étais mal exprimé (rapport à ce que dis domdidom.eu), mes deux midlets sont dans la même midlet suite.
Par contre, maintenant il me lance bien la deuxième midlet, sauf qu'il ne me "l'affiche" pas. Je lance un nouveau thread, qui lance ma midlet, mais après ça, soit je l'empêche de sortir, et je ne peux rien faire, soit il rebascule sur la première midlet, et je n'arrive pas à prendre la main sur la seconde.
J'ai lu des histoires de focus, vous sauriez comment sauter d'une midlet à l'autre?
-
Je n'ai jamais essayé ce genre de truc, mais peut être que :
- B fait un register Alarm
- A se lance
- A fait un affichage
- B fait un affichage qui rend B active et met A en pause
il faudrait peut être que tu essaie de tracer les appels à pauseApp et startApp dans les 2 midlets pour voir ....
-
Bon la suite est un peu tardive (j'ai eu d'autres choses à faire entre):
J'ai essayé de tracer le lancement de la midlet, mais apparement ça n'arrive pas: la fonction registerAlarm a l'air de fonctionner, mais au final, le constructeur de ma midlet n'est pas appelé, ni même le startapp. Je me demande si mon problème ne vient pas de l'agencement de mes midlets.
En effet, j'étais parti en utilisant ma midlet A (l'appelant) en lui rajoutant dans le build path ma midlet B. J'ai donc le résultat au dessus. Puis j'ai tenté de packager B, et mettre le jar obtenu dans A, sans plus de succès. J'ai aussi essayé de mettre directement mon projet B dans celui A, mais toujours pareil.
Le problème que j'ai, c'est que pour l'heure, j'ai une organisation comme ça:
-Midlet A
--A.jad
-Midlet B
--B.jad
Alors que normalement je devrais avoir qu'un seul jad, non? Mes 2 jad spécifient les liens entre les deux midlets, et ma midlet A a toujours dans son build path l'accès à B.
Un point que j'ai remarqué: j'utilise un émulateur (pour ne pas à avoir à transférer mon programme à chaque fois sur mon portable), et au moment d'exécuter le registeralarm, j'ai un message du type:
"It is Ok to receive updates?"
Qui me demande une confirmation. Si je refuse, j'ai droit à une exception, me signifiant que l'application n'est pas authorisée à accéder à cette API. Si j'accepte, je reviens à l'écran avant la demande de confirmation...
Si vous avez des idées...