2016-12-02 2 views
3

je construire une application pour envoyer des messages courts en utilisant SMPP 3.4 et qui fonctionnent bien, mais dans certains téléphones i reçu ce message:envoyer de courts messages à l'aide SMPP ouvert 3.4

Impossible d'afficher ce message

ceci est mon code source de la fonction:

public String sendMsg(JsonObject paramsIN) { 
    String smsMessage = paramsIN.getString("body"); 
    String smsDestination = paramsIN.getString("to"); 
    String smsSource = paramsIN.getString("from"); 
    String smscNAME = paramsIN.getString("smsc"); 

    SubmitSM request = new SubmitSM(); 
    SubmitSMResp response; 
    Session session; 
    try { 
     request.setSourceAddr(smsSource); 
     request.setDestAddr(smsDestination); 
     request.setShortMessage(smsMessage, "UTF-8"); 
     request.setRegisteredDelivery((byte) 3); 
     request.setDataCoding((byte) 4); // 4 
     request.assignSequenceNumber(true); 
     response = ((Session) sd.get(smscNAME)).submit(request); 
     logger.info("Submit response " + response.debugString()); 
     String messageId = response.getMessageId();  

     BigInteger bigInt = new BigInteger(messageId, 16); 

     return bigInt+""; 
    } catch (WrongLengthOfStringException e) { 
     logger.error(e); 
     return null; 
    } catch (PDUException e) { 
     logger.error(e); 
     return null; 
    } catch (TimeoutException e) { 
     logger.error(e); 
     return null; 
    } catch (WrongSessionStateException e) { 
     logger.error(e); 
     return null; 
    } catch (IOException e) { 
     logger.error(e); 
     return null; 
    } 
} 

s'il vous plaît quelqu'un peut me aider, grâce

Répondre

1

Définissez le codage de données sur 0 (réseau par défaut) et codifiez le corps avec le jeu de caractères compatible avec votre fournisseur. Utilisez le jeu de caractères GSM par défaut si vous devez deviner (jcharset inclut un encodeur). Si vous avez vraiment besoin d'un jeu de caractères étendu, utilisez UTF-16BE et réglez le codage des données sur 8.

+0

merci, ça fonctionne (y). J'ajoute ceci dans mon code 'request.setShortMessage (smsMessage, Data.ENC_UTF16_BE); request.setDataCoding ((octet) 0x08); ' –

+0

Salut teppic merci pour votre solution, mais j'ai un autre problème que dans un autre téléphone intelligent comme" samsung galaxy g1 ace "j'ai ce message" Contenu non supporté " –