2016-12-02 1 views
3

Senden habe ich smpp 3.4 und dass die Arbeit gut, aber in einigen Telefonen Ich habe diese Nachricht unter Verwendung von Kurznachrichten an dem Senden eine Anwendung erstellen:Kurznachricht mit offenen smpp 3.4

Diese Nachricht nicht anzeigen kann

dies ist meine Funktion Quellcode:

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; 
    } 
} 

bitte jemand kann mir helfen, dank

Antwort

1

Setzen Sie die Datencodierung auf 0 (Standardeinstellung für das Netzwerk) und kodieren Sie den Textkörper mit dem von Ihrem Provider unterstützten Zeichensatz. Verwenden Sie den GSM-Standardzeichensatz, wenn Sie raten müssen (jcharset enthält einen Encoder). Wenn Sie wirklich einen erweiterten Zeichensatz benötigen, verwenden Sie UTF-16BE und setzen Sie die Datencodierung auf 8.

+0

Danke, das funktioniert (y). Ich füge das in meinem Code hinzu 'request.setShortMessage (smsMessage, Data.ENC_UTF16_BE); request.setDataCoding ((Byte) 0x08); ' –

+0

Hallo Teppic danke für Ihre Lösung, aber ich habe ein anderes Problem, dass in einem anderen Smartphone wie" Samsung Galaxy G1 Ace "habe ich diese Nachricht" Inhalt nicht unterstützt " –