Android: Unicode / Charset Probleme beim Senden einer SMS (sendTextMessage)

8

Grundsätzlich habe ich eine funktionierende Anwendung, die nach Erhalt einer SMS eine SMS sendet.

Alles funktioniert gut , außer wenn der SMS-Text zum Senden spezielle Zeichen enthält, zB "é, à, í, ç", usw.

Ich habe viele Dinge versucht, einschließlich der Zeichensatzkonvertierung, aber ich kann es einfach nicht funktionieren lassen ... der msgText kommt immer mit Zeichensatzcodierungsproblemen zurück.

Hier ist der Teil, wo die Nachricht gesendet wird:

%Vor%

Hier ist die Zeichensatzkonvertierungsfunktion, die ich ausprobiert habe (aber nicht geholfen hat), die ich auf msgText angewendet habe:

%Vor%

In der Nähe von Verzweiflung habe ich sogar die Lösung für Unicode Messaging hier versucht (hat auch nicht geholfen):

Ссылка

Wie auch immer, hier ist die (aufgeräumt - Paket ist com.THE.APPLICATION, Hauptaktivität ist MAINACT) LogCat für wenn es abstürzt (beim Versuch, die Nachricht zu senden, nach Erhalt eines):

%Vor%

Beispiel für zu sendenden Nachrichtentext:

%Vor%

Also liest possövel wenn es sein sollte möglich

Bitte erleuchte mich mit einer erleuchteten Seele. Er / Sie wird einen besonderen Platz in meinem Herzen haben! :)

Edit: Wenn der besondere Platz in meinem Herzen es nicht schneidet, bin ich bereit, ein paar Dollar für eine funktionierende Lösung zu bezahlen ...

    
Bruno Bernardino 20.11.2010, 15:28
quelle

5 Antworten

8

Ok, das scheint gelöst worden zu sein, indem einfach sendMultipartTextMessage anstelle von sendTextMessage für die Nachrichten verwendet wurde.

Wer hätte gedacht ... das macht Sinn, weil Unicode-Zeichen mehr "Platz" als "normale" verwenden.

    
Bruno Bernardino 29.11.2010, 17:15
quelle
2

Ich habe diesen Code verwendet, um UTF-8-Zeichen in ASCII zu konvertieren. Dann funktioniert das Senden von SMS und ich kann 160 Zeichen verwenden:

%Vor%     
David Vávra 01.03.2011 16:06
quelle
1

Ich verwende diese Befehlszeile:

%Vor%

und meine SMS-Nachricht sieht perfekt aus.

    
ChristianMEC 22.09.2015 08:30
quelle
0

Sie können nur 160 Zeichen verwenden, wenn es sich um eine 7-Bit-Codierung handelt. Wenn Sie 140 Zeichen verwenden, sollte es ohne sendMultipartTextMessage funktionieren, da Sie 8-Bit-Zeichen (UTF-8) verwenden.

    
Jim 09.01.2011 23:10
quelle
0

Ich habe das gleiche Problem mit Sonderzeichen. Wenn ich die Nachricht MAX_SMS_MESSAGE_LENGTH auf 70 ändere, funktioniert alles gut. Schau dir den Link an:

Ссылка

Das ist mein Code:

%Vor%

Natürlich können Sie einen Controller einfügen, der prüft, ob die Nachricht ein Sonderzeichen enthält, und dann MAX_SMS_MESSAGE_LENGTH von 160 auf 70 ändern. Ich habe in meiner App immer Sonderzeichen.

    
Tomasz Strzelecki 27.04.2017 18:15
quelle