Píšem aplikáciu pre Android, ktorá umožňuje volať a odpovedať medzi dvoma zariadeniami. Momentálne používam sendMultipartTextMessage
na odoslanie správy dlhšej ako 160 znakov. Prijatá správa však nie je správou, ktorú som odoslal.
String response = "abcd abcd abcd abcdabcd abcd abcd abcd abcd...to 300 chars";
Log.i("response",response);
SmsManager sms = SmsManager.getDefault();
ArrayList<String> parts = sms.divideMessage(response);
for (String part : parts) {
Log.i("part",part);
}
sms.sendTextMessage(sender, null, "This should be normal", null, null);
sms.sendMultipartTextMessage(sender, null, parts, null, null);
Na Log.i
beží podľa očakávania a na výstupy sa zobrazí správa v častiach. sendTextMessage
pošle tiež správnu SMS na môj emulátor partnera. Časti však poslal sendMultipartTextMessage
všetko sa vracia podivne preložené. Napríklad vyššie uvedené response
by boli prijaté ako „BEGIABEGIABEGIABEGIA ...“ atď. s niekoľkými malými obmenami medzier a čísel.
Čo spôsobuje sendMultipartTextMessage
dobiť SMS?
odpovede:
3 pre odpoveď č. 1Je to chyba v platforme: pozri http://code.google.com/p/android/issues/detail?id=13737, Môže to byť obmedzené na simulátor, takže to vyskúšajte na skutočnom zariadení.
0 pre odpoveď č. 2
Metóda sendMultipartTextMessage nefunguje správne, keď spustíte aplikáciu pre Android z ľubovoľného simulátora.
takže musíte otestovať svoju aplikáciu pre Androidskutočný Android chytrý telefón. ešte jedna vec, ktorú treba vziať do úvahy, je pri poslaní SMS vždy pass null ako reťazec s druhým číslom (reťazec obsahujúci telefónne číslo odosielateľa), inak kód nebude sms.
Dúfam, že vám to pomôže.