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 :

Comment lancer une midlet depuis une autre midlet


Sujet :

Java ME

  1. #1
    Invité
    Invité(e)
    Par défaut Comment lancer une midlet depuis une autre midlet
    Bonjour,

    J'ai créer deux midlet et je voudrais créer une nouvelle midlet servant de menu pour lancer l'une ou l'autre.
    Quand j'utilise la méthode startApp() j'obtient l'erreur suivante :
    java.lang.SecurityException: Application not authorized to access the restricted API

    Que faut-il faire pour éviter ce problème ?

    Merci d'avance

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 680
    Par défaut
    Cette opération n'est pas accessible directement pour des raisons de sécurité.
    Il faudrait avoir une signature autorisant cette opération. Pour cela il faut négocier soit avec l'opérateur, soit le fabricant du téléphone, et payer un certificat (assez cher).

    Bref si tu peux t'en passer, fait le.

  3. #3
    Membre expérimenté
    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
    Par défaut
    Le fait de les mettre dans la même MIDlet suite devrait pouvoir éviter cette erreur, sans avoir à signer l'application.
    D'ailleurs, je ne pense pas que la signature puisse résoudre ce type de problème.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Oui, je peux m'en passer si je trouve comment partager mon recordstore entre mes deux midlets. Cela marche bien sur mon micro, mais pas sur mon téléphone ou mes deux midlets semblent accéder à deux recordstore différents. C'est pour contourner ce problème que je voulais faire un menu.
    Si vous connaissez la solution pour partager un même recordstore, je suis preneur.

    Merci encore

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci Fetchi, mais je suis bien dans la même midlet suite.

  6. #6
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 680
    Par défaut
    Pour partager des recordstore: il suffif de les ouvrir avec:
    openRecordStore( "RECORDSTORE_COMMUN", true, RecordStore.AUTHMODE_ANY, true );

  7. #7
    Invité
    Invité(e)
    Par défaut
    Merci Uther,
    Je vais essayer tout de suite, mais j'aimerais connaître exactement la signification des différents modes d'ouvertures, où trouver l'info ?

  8. #8
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 680
    Par défaut
    Comme on dis dans ces cas la : RTFM
    http://java.sun.com/javame/reference...int,%20boolean)

  9. #9
    Invité
    Invité(e)
    Par défaut
    Merci encore Uther,

    Si j'ai bien compris la syntaxe que tu me donne permet à une midlet de partager son recordstore pour d'autres midlets dans des midlets suites différentes.

    Dans la midlet qui souhaite accéder au recordstore je suppose qu'il faut utiliser la syntaxe
    openRecordStore(String recordStoreName, String vendorName, String suiteName)
    C'est là que je bloque car je ne sais pas quoi mettre pour la chaîne vendorName et j'obtient toujours le message d'erreur :
    javax.microedition.rms.RecordStoreNotFoundException: cannot find record store file

  10. #10
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 680
    Par défaut
    La solution que je t'ai proposé est certes un peu barbare, mais elle a l'avantage d'être la plus simple. Elle ouvre un Recordstore commun a toutes les Midlets y compris les midlets externes à la Midlet-suite.

    En effet la méthode dont tu parles semble se limiter a la Midlet suite. Bien que je ne l'aie jamais utilisée il me semble que tu dois employer les mêmes valeurs vendorName et suiteName qui sont utilisées dans le Manifest du jar et dans le jad

  11. #11
    Invité
    Invité(e)
    Par défaut
    Merci encore Uther, mais je galère toujours.

    Si l'utilise la même syntaxe dans les deux midlets :
    RecordStore.openRecordStore(NomRS, true, RecordStore.AUTHMODE_ANY, true)
    Cela marche bien sur mon micro (sous eclipse) mais sur mon téléphone, j'ai toujours l'impression d'avoir deux recordstore différents !
    C'est peut-être un problème lié à mon téléphone Samsung SGH-P270.

    Avec la deuxième syntaxe, j'ai toujours une erreur à l'ouverture même en mettant comme VendorName la valeur contenue dans le .jad

    Si tu as une idée ???

    Peut-être faudrait-il mettre mes deux midlets dans la même midlet suite, mais la je ne sais pas comment faire.

  12. #12
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 680
    Par défaut
    Pour le problème du recordstore partagé qui ne marche pas, C'est probablement en effet une limitation du téléphone. Il arrive souvent que les téléphones ne respectent que approximativement la spec.

    Pour la deuxième syntaxe, je ne l'ai jamais utilisée mais d'après la doc, elle ne semble adapté que pour ouvrir des recordstore déjà existants.

  13. #13
    Invité
    Invité(e)
    Par défaut
    Finalement, j'ai créé une midlet suite avec mes deux midlets (je ne savais pas que cela était géré automatiquement) et la aucun problème de partage de recordstore sur mon téléphone.

    Quelle perte de temps (je cherche depuis un mois) !!!

    Merci encore Uther pour ton aide.

  14. #14
    Membre expérimenté
    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
    Par défaut
    Tu n'avais pas dis plus haut que tu étais déjà dans la même MIDlet suite ?

  15. #15
    Invité
    Invité(e)
    Par défaut
    Désolé Fetchy de ne pas avoir été assez clair.
    Au départ, j'avais réalisé deux midlets dans deux midlets suites différentes et malheureusement, je n'arrivais pas à partager un même recordstore sur mon téléphone.
    J'ai donc eu la (mauvaise) idée de les mettre dans une même midlet suite avec une nouvelle midlet servant de menu (je ne savais pas que cela était parfaitement inutile !) d'où ma question de départ sur ce forum.
    En fait, c'était l'idée du menu qui était mauvaise, encore faut-il savoir que le téléphone propose automatiquement le choix de la midlet que l'on veut exécuter quand il y en a plusieurs dans la même midlet suite.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment modifier les champs d'une classe depuis une autre
    Par SuperJoker dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 19/06/2014, 11h28
  2. Réponses: 2
    Dernier message: 01/12/2008, 18h43
  3. Réponses: 2
    Dernier message: 26/11/2007, 12h22
  4. Comment acceder au control d'une form depuis une autre form?
    Par UnSofteuxAmateur dans le forum Windows Forms
    Réponses: 11
    Dernier message: 05/07/2007, 12h18
  5. comment lancer du code depuis une macro ?
    Par faiglon dans le forum Access
    Réponses: 15
    Dernier message: 13/07/2006, 11h03

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