poniedziałek, 17 lutego 2014

Wysyłanie pojedynczego 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 SMSów w Androidzie jest bardziej niż proste. Do pliku manifestu dodajemy odpowiednie uprawnienie:


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


A następnie przechodzimy do kodu:


Obiekt klasy SmsManager to po prostu narzędzie służące do wysyłania SMS. Znaczenia pozostałych 2 zmiennych – odbiorca i wiadomosc nie trudno jest się domyślić. Przyjrzyjmy się teraz liniom 22 i 23. Metoda getDefault oddaje nam instancję klasy SmsManager. Metoda sendTextMessage służy do wysyłania SMSów składających się z nie więcej niż 160 znaków – tj. pojedynczy sms. Istnieje też metoda „sendMultipartTextMessage” która umożliwia wysłanie tekstu na który składa się więcej niż jeden SMS. Pierwszy parametr metody sendTextMessage to numer telefonu odbiorcy,trzeci to treść wiadomości. Musimy pamiętać, że urządzenie z którego wysyłamy wiadomości musi posiadać kartę SIM :)

7 komentarzy:

  1. Witam ,czy jest możliwość dodania kilku odbiorców do jednej wiadomości?

    OdpowiedzUsuń
    Odpowiedzi
    1. A co za problem stworzyć listę odbiorców i w pętli wywoływać "sendTextMessage()" podmieniając przy tym argument z odbiorcą?

      Usuń
    2. A jak działa domyślna aplikacja SMS? Może do operatora wysyła się jeden raz treść wiadomości i listę adresatów, którym ma przekazać wiadomość? Jeśli tak, to lepiej znaleźć implementację takiego rozwiązania (ze względu na dłuższy czas wysyłania i ewentualne opłaty).

      Usuń
  2. A jak ustawić np aby wysłać sms o konkretnej dacie lub godzinie?

    OdpowiedzUsuń
  3. A jeśli ktoś musi płacić za każdego wysłanego SMS-a, to jak powinien testować aplikację, aby w rzeczywistości nie wysyłać żadnych SMS-ów, ale mieć pewność, że działa prawidłowo?

    OdpowiedzUsuń
  4. Chciałbym programem wysłać sms do odbiorcy z którym ostatnio rozmawiałem. Znaczy : dzwoni ktoś do mnie, ja po rozmowie uruchamiam program i wysyłam automatycznie sms do niego.

    OdpowiedzUsuń