poniedziałek, 17 lutego 2014

Wysyłanie wieloczęściowego SMSa


Kod źródłowy do tej lekcji znajduje się tutaj. Rozpakuj go i zaimportuj. W katalogu z kodem źródłowym znajdą się podkatalogi oznaczone numerami. Są to po prostu kolejne wersje kodu, tworzonego w ramach przykładów. Możesz analizować kolejne kroki tworzenia aplikacji, lub od razu zabrać się za kod z katalogu o najwyższym numerku.



Wysyłanie wieloczęściowego SMSa jest bardzo podobne do wysyłania pojedynczego, z tą różnicą że smsa trzeba po drodze podzielić na kilka fragmentów, ale nawet do tego mamy dedykowaną gotową metodę. Zacznijmy od dodania niezbędnego uprawnienia:

<uses-permission android:name="android.permission.SEND_SMS"/>

Potem przechodzimy do kodu:



Obiekt klasy SmsManager jest elementem wysyłającym smsy. Zmienna odbiorca to numer telefonu na który chcemy wysłać wiadomość. Lista elementów fragmenty, zdefiniowana jako pusta to pojemnik do którego wrzucona zostanie wiadomość SMS podzielona na fragmenty. Zmienna wiadomosc służy do tymczasowego przechowania wiadomości o długości większej niż 160 znaków. W metodzie onCreate , w linii 28 odbieram instancję klasy SmsManager. W linii 29 wykorzystuję metodę divideMessage której podaję długą wiadomość, a ta zwraca nam ją już podzieloną na fragmenty do pojemnika „fragmenty”. Samo wysłanie wiadomości to wywołanie metody sendMultipartTextMessage, której podaję numer telefonu odbiorcy i wiadomość podzieloną na fragmenty. Po drodze (w linii 30) wyświetlam ilość elementów jakie wyjdą z naszej wiadomości. Wyszły mi cztery, co widać na poniższym obrazku:




Wiadomość przychodzi jako całość. Pamiętamy oczywiście o włożeniu karty SIM do urządzenia z którego chcemy wysyłać smsy, ponieważ wbrew pozorom nie jest to metoda na darmowe wysyłanie smsów ;)

1 komentarz:

  1. Jak dokładnie została podzielona pierwotna wiadomośc na 4 sms? Każdy będzie miał tą samą długość (160), a ostatni to co zostanie?

    OdpowiedzUsuń