Bonjour,

Voici mon code pour l'envoi du message, un truc classic :

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
 
		try{
			smsconn = (MessageConnection)Connector.open(adresse);
 
			txtmessage =(TextMessage)smsconn.newMessage(MessageConnection.TEXT_MESSAGE);
			txtmessage.setAddress(adresse);
			txtmessage.setPayloadText(message);
 
			smsconn.send(txtmessage);
			isSend = true;
		}catch(IOException e){
			isSend = false;
			Log.debug("sending problem " + e);
		}catch(Exception e){
			isSend = false;
			Log.debug("sending global problem " + e);
		}finally{
			txtmessage=null;
 
			try{
				smsconn.close();
				smsconn = null;
			}catch(Exception e){}
 
		}
Pour recevoir des messages :

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
 String[] connections = PushRegistry.listConnections(true);
	    if(connections != null) {
 
 
	      for(int i=0;i<connections.length;i++) {
	        MessageConnection conn = null;
 
	        try {
 
	          conn = (MessageConnection)Connector.open(connections[i]);
	          notifyIncomingMessage(conn);
 
	        }
	        catch(Exception e) {
 
	        }finally {
	          try {
	            conn.close();
	          }
	          catch(Exception e) { /*squelch*/}
	        }
	      }
	    }
 
	    try {
            smsconn = (MessageConnection)Connector.open(smsConnection);
            smsconn.setMessageListener(this);
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }

Mon problème est le suivant : après avoir envoyé des messages, mon appli n'est plus en mesure d'en recevoir. Aucun message n'arrive au niveau NotifyIncomingMessage().... Plus rien n'arrive niet nada.

Le problème vient de ce morceau de code (du moins le haut de l'iceberg) qui se trouve à la fin de la partie envoi de msg

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
try{
				smsconn.close();
				smsconn = null;
			}catch(Exception e){}
Si je retire ce code (situé au niveau de l'envoi du msg), alors en réception je n'ai plus de problème, mais bien sur au bout d'un moment je sature la mémoire car j'ouvre pleins de connections que je ne ferme jamais au moment de l'envoi (une par message envoyé).

J'ai aussi essayé d'envoyé un message, puis de ferme la connexion en réception, et de l'ouvrir de nouveau. Avec un résultat partiel : pendant l'envois de messages je ne reçois plus de messages, ils partent dans la nature, et mais une fois la connexion réinitialisée je peux de nouveau recevoir des messages.

Encore une petite chose - l'impression que ça donne est la suivante : si je ferme une connexion d'envoi, ça ferme aussi ma connexion de réception (qui sont différentes).
Mais j'ai vérifié, si j'ouvre la connexion de réception après envois sans la fermer au préalable j'ai une erreur me disant que cette connexion est déjà ouverte.

Un post un peu long, j'espère ne pas en décourager trop.

Quelqu'un comprend mon problème ? Quelqu'un a t'il une solution ?


Olivier