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 :

problème pushRegistry sur réception SMS


Sujet :

Java ME

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 34
    Par défaut problème pushRegistry sur réception SMS
    salut tout le monde,
    j'ai une petite application permettant d'envoyer et de recevoir des SMS. je vous copie les deux méthodes qui à priori vous seraient utiles pour m'aider : startApp et run de la midlet de reception des SMS (pour ceux qui connaissent, je me suis servi de l'exemple WMADemo du WTK)
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
         public void startApp() {
            String smsConnection = "sms://:" + smsPort;
            if (smsconn == null) {
                try {
                    smsconn = (MessageConnection)Connector.open(smsConnection);
                    smsconn.setMessageListener(this);
                } catch (IOException ioe) {
                    ioe.printStackTrace();
                }
            }
            connections = PushRegistry.listConnections(true);
            if ((connections == null) || (connections.length == 0)) {
                content.setString("Waiting for SMS on port " + smsPort + "...");
            }
            done = false;
            thread = new Thread(this);
            thread.start();
            display.setCurrent(resumeScreen);
        }
     
         public void run() {
            try {
                msg = smsconn.receive();
                if (msg != null) {
                    senderAddress = msg.getAddress();
                    content.setTitle("From: " + senderAddress);
                    if (msg instanceof TextMessage) {
                        content.setString(((TextMessage)msg).getPayloadText());
                    } else {
                        StringBuffer buf = new StringBuffer();
                        byte[] data = ((BinaryMessage)msg).getPayloadData();
                        for (int i = 0; i < data.length; i++) {
                            int intData = (int)data[i] & 0xFF;
                            if (intData < 0x10) {
                                buf.append("0");
                            }
                            buf.append(Integer.toHexString(intData));
                            buf.append(' ');
                        }
                        content.setString(buf.toString());
                    }
                    display.setCurrent(content);
                }
            } catch (IOException e) {
            }
        }
    pour le moment, je lance deux instances, sur l'une j'ouvre la midlet de reception (j'ai donc un "waiting for sms..." affiché jusqu'à nouvel ordre) sur l'autre j'envoi un message à la première instance et là mon message s'affiche effectivement sur l'ecran de la première. donc tout va bien.

    maintenant ce que je voudrais, c'est ne plus avoir à lancer la midlet de reception sur la première instance, mais que celle ci s'ouvre automatiquement. j'utilise dons le pushRegistry sur mon numero de port avec la midlet de reception. (je verifie sur le .jad et la ligne push est effectivement là avec les paramètres qu'il faut)
    donc encore une fois tout va bien... eh bah non ! ça ne marche pas. du coup je me dis qu'il faut peut etre changer le code de reception. mais en suivant cet exemple : exemple
    je ne vois pas ce qui me manque...

    voila tout est dit, j'espère que vous pourrez m'aider

  2. #2
    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
    Comme ça je ne vois pas ce qui te manques :
    - le pb est aussi présent avec l'émulateur ?
    - l'application n'est pas lancée ou il y a une exception au lancement avant le premier affichage ?

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 34
    Par défaut
    je ne teste que sur émulateur pour le moment.

    et non ce n'est pas une exception. je lance une instance. je la laisse sur le premier écran (celui ou on a la liste des midlets du projet). j'ouvre une autre instance puis la midlet d'envoi. mais rien ne se passe du coté de la réception.
    si j'ouvre la midlet de réception sur la première instance, je reçoi le message par contre.

  4. #4
    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 numéro de réception de la seconde instance n'est pas le même que celui de la première instance. Il faut donc que tu changes le numéro de réception dans ton code.

  5. #5
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 34
    Par défaut
    bonjour,
    le problème n'est pas là malheureusement. le numéro de téléphone n'est pas dans le code, il est saisi lors de l'exécution et je met évidemment le numéro de l'autre instance quand je teste.
    pour faire simple, mon exemple marche très bien sans le pushregistry. c'est en voulant lancer automatiquement la midlet de réception du SMS que ça coince.

    je réalise que ce n'est pas facile de m'aider à distance, d'autant plus que le problème n'est visiblement pas dans le code lui même.
    y a-t-il certaines conditions que la midlet appelée par le pushregistry doit remplir pour que cela fonctionne?
    peut-être pourrais-je t'envoyer ma petite appli (à peine 3 midlets) pour que tu y jettes un coup d'oeil? si tu as le temps...

  6. #6
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 34
    Par défaut
    bonjour,
    à titre d'information, j'ai compris ce qui n'allait pas... tout simplement rien tout était correct. c'était juste que je ne savais pas qu'il fallait exécuter via OTA pour pouvoir simuler la réception avec le PushRegistry.
    d'ailleurs si quelqu'un en passant pourrait m'expliquer pourquoi une exécution "normale" de l'émulateur ne suffit pas, je lui en serais reconnaissant.
    et pour finir, au cas où ça servirait à quelqu'un, voilà un bon exemple complet et assez bien expliqué pour une réception de SMS utilisant le PushRegistry : ici

    merci

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

Discussions similaires

  1. Problème droit sur un tablespace
    Par wazar dans le forum Administration
    Réponses: 11
    Dernier message: 05/01/2010, 15h12
  2. problème écriture sur un fichier
    Par drinkmilk dans le forum MFC
    Réponses: 4
    Dernier message: 24/06/2007, 00h08
  3. Problème innerHTML sur div !!!
    Par aburner dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/01/2005, 09h23
  4. [CR8] Problème tableau sur plusieurs pages???
    Par christophe28 dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 02/11/2004, 15h46
  5. [MFC] Problème pointeur sur une classe
    Par mick74 dans le forum MFC
    Réponses: 7
    Dernier message: 14/04/2004, 14h17

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