Learning Advanced JavaScript

http://ejohn.org/apps/learn/
by John Resig.

Kanns kaum erwarten, Secrets of the JavaScript Ninja in den Händen zu halten.

World’s Largest Google Nexus One Phone

jQuery Easing cheat sheet

http://commadot.com/jquery/easing.php

Rymdreglage – 8-bit trip

Mein Problem mit SmsManager

In meinem neuen Projekt verwende ich den android.telephony.SmsManager zum versenden von SMS-Nachrichten:

String number = "123456789"; String message = "Hallo, SMS!";
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(number, null, message, null, null);

Sieht ja schon fast zu einfach aus – jedoch trat bei einigen Nachrichten folgendes Problem auf:


Verdammt. Nach endlos langer Zeit, in der ich das Internet nach ähnlichen Problemen durchforstet habe, noch immer keine Lösung.

Bis ich vor einigen Minuten plötzlich auf das hier gestoßen bin: Issue 147
Ganz Unten steht folgendes:

Test Cases:
1. Check that the correct SMS message is received at the receiving end and use logs to confirm that the contents of the original intent that started the SMSService is properly received at the ResultReceiver for the following cases:
  1.1 Create a rule with SMS action with SMS message > 160 characters and trigger the rule.
  1.2 Create a rule with SMS action with SMS message < 160 characters and trigger the rule.

160 Zeichen. Also sofort 2 Nachrichten mit je 160 bzw.161 Zeichen verfasst und ausprobiert. Ergebnis: Bei 160 Zeichen kein Problem, bei 161 Zeichen die altbekannte Exception.

Warum aber eigentlich 160 Zeichen?
Why text messages are limited to 160 characters

Nun war das Problem also gefunden – aber wie jetzt die SMS ausfplitten? Nach einem erneuten Blick in die Doku war die Lösung schnell gefunden: divideMessage(String text). Blöderweise war mir diese Funktion vorher noch nie aufgefallen. Genauso wenig wie die Methode sendMultipartTextMessage(…). Und dabei könnte ich schwören, dass gestern nur die 2 Methoden sendDataMessage(…) und sendTextMessage(…) drin standen =)

Fazit:

SmsManager sms = SmsManager.getDefault();
ArrayList<String> messages = sms.divideMessage(message);
sms.sendMultipartTextMessage(number, null, messages, null, null);

Das Ganze läuft jetzt ohne Probleme – egal wie viele Zeichen in der SMS drinstecken :)


[Update] Gerade hab ich noch eine Blogeintrag gefunden, in dem das Senden und Empfangen von SMS-Nachrichten erläutert wird: Sending and Receiving SMS in Android

voilà!

Use curl to get Google’s ClientLogin token for C2DM

curl -k -X POST https://www.google.com/accounts/ClientLogin -d Email=ACCOUNT -d Passwd=PASSWORD -d accountType=HOSTED_OR_GOOGLE -d service=ac2dm

…everything after Auth= is yours :)

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.