J2ME. Java dla urz¹dzeñ mobilnych. Æwiczenia

Podobne dokumenty
Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1

ZAPOZNANIE SIĘ Z TWORZENIEM

Programowanie obiektowe zastosowanie języka Java SE

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Java Platform Micro Edition

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Laboratorium 7 Blog: dodawanie i edycja wpisów

Programowanie obiektowe

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe

Problemy techniczne. Jak umieszczać pliki na serwerze FTP?

J2ME Część II. P.J.Podsiadły

Programowanie aplikacji na urządzenia mobilne

Ćwiczenie 1. Przygotowanie środowiska JAVA

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

SERWER AKTUALIZACJI UpServ

Wstęp 5 Rozdział 1. Instalacja systemu 13. Rozdział 2. Logowanie i wylogowywanie 21 Rozdział 3. Pulpit i foldery 25. Rozdział 4.

Wprowadzenie do projektu QualitySpy

Instalacja i konfiguracja IIS-a na potrzeby dostępu WEBowego/Secure

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

APLIKACJA SHAREPOINT

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.

Synchronizator plików (SSC) - dokumentacja

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Aplikacja do podpisu cyfrowego npodpis

Instrukcja instalacji i konfiguracji Karty EDGE/GPRS SonyEricsson GC85

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Programowanie Obiektowe GUI

Zaawansowane aplikacje internetowe - laboratorium

SERWER AKTUALIZACJI UpServ

Instalacja i konfiguracja IIS-a na potrzeby dostępu WEB do aplikacji Wonderware InTouch Machine Edition

Jak zainstalować i skonfigurować komunikator MIRANDA, aby wyglądał i funkcjonował jak Gadu Gadu Tutorial by t800.

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

SERWER AKTUALIZACJI UpServ

Instrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie

Instrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie

Zasady tworzenia podstron

P³atnik. Przewodnik IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG ONLINE

WPROWADZENIE DO JĘZYKA JAVA

Instrukcja instalacji

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Memeo Instant Backup Podręcznik Szybkiego Startu

UNIFON podręcznik użytkownika

7 Business Ship Control dla Symfonia Handel

Smarty PHP. Leksykon kieszonkowy

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Instrukcja konfiguracji funkcji skanowania

I2: J2ME programowanie w NetBeans IDE Wydział Transportu PW semestr /11

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

STWORZENIE PRZYKŁADOWEJ

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7

Włączanie/wyłączanie paska menu

5.4. Tworzymy formularze

Przewodnik... Budowanie listy Odbiorców

Programowanie w Javie

5.2. Pierwsze kroki z bazami danych

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Budowanie listy Odbiorców

Instrukcja 1: Instalacja certyfikatu niekwalifikowanego w systemie Microsoft Windows:

Books. by HansaWorld. Przewodnik instalacji. wersji 6.2

Instrukcja instalacji programu ARPunktor wraz z serwerem SQL 2005 Express

Nagrywamy podcasty program Audacity

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Instrukcja importu dokumentów z programu Fakt do programu Płatnik

OpenOffice.ux.pl 2.0. Æwiczenia praktyczne

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Java jako język programowania

Certyfikat Certum Basic ID. Instrukcja dla użytkowników Windows Vista. wersja 1.3 UNIZETO TECHNOLOGIES SA

Uruchomienie aplikacji Plan lekcji w przeglądarce Internet Explorer

Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID

Instrukcja instalacji aplikacji Comarch Smart Card ToolBox

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows

Program RMUA. Instrukcja konfiguracji i pracy w programie. (Wersja 2)

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Instalacja rozwiązania Uruchomienie rozwiązania w systemie Sage Konfiguracja dodatku Ustawienia dodatkowe rozwiązania...

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

7 Business Ship Control dla Systemu Zarządzania Forte

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Aplikacje w środowisku Java

5. Praca z klasą. Dodawanie materiałów i plików. Etykieta tematu. Rozdział 5 Praca z klasą

Portal SRG BFG. Instrukcja korzystania z Portalu SRG BFG

BACKUP BAZ DANYCH FIREBIRD

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Przewodnik Szybki start

Java Podstawy. Michał Bereta

Instalowanie VHOPE i plików biblioteki VHOPE

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Modelowanie obiektowe - Ćw. 1.

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

Laboratorium - Instalowanie dodatkowego oprogramowania w Windows Vista

Instrukcja. importu dokumentów. z programu Fakt do programu Płatnik. oraz. przesyłania danych do ZUS. przy pomocy programu Płatnik

epuap Archiwizacja w Osobistym Składzie Dokumentów

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Konfiguracja poczty IMO dla urządzeń mobilnych z systemem ios oraz Android.

Załącznik 1 instrukcje instalacji

Transkrypt:

IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE ONOWOŒCIACH ZAMÓW CENNIK CZYTELNIA SPIS TREŒCI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY KSI EK ONLINE J2ME. Java dla urz¹dzeñ mobilnych. Æwiczenia utor: Krzysztof Rychlicki-Kicior ISBN: 83-246-0393-X Format: B5, stron: 148 Poznaj podstawy tworzenia aplikacji dla telefonów komórkowych Zainstaluj œrodowisko programistyczne Napisz w³asny MIDlet Po³¹cz aplikacjê z internetem Niemal ka dy telefon komórkowy umo liwia uruchamianie aplikacji napisanych w jêzyku Java. Jednak tworzenie takich aplikacji ró ni siê od pisania programów na du e komputery. Korzystanie z jêzyka Java dla urz¹dzeñ mobilnych (J2ME) wymusza na programiœcie pewne ograniczenia wynikaj¹ce z mniejszej iloœci pamiêci, odmiennych metod komunikacji i wielu innych czynników. Tworzenie aplikacji J2ME, zwanych MIDletami, wymaga poznania tych ograniczeñ oraz specyficznych zasad programowania. Ksi¹ ka J2ME. Java dla urz¹dzeñ mobilnych. Æwiczenia to przewodnik po podstawowych zagadnieniach zwi¹zanych z tworzeniem aplikacji dla urz¹dzeñ mobilnych. Wykonuj¹c zawarte w niej æwiczenia, nauczysz siê korzystaæ z tej wersji Javy. Stworzysz proste MIDlety i poznasz zasady tworzenia interfejsów u ytkownika. Dowiesz siê, jak implementowaæ po³¹czenia internetowe i korzystaæ z danych zawartych w zewnêtrznych plikach. Instalacja œrodowiska J2ME Wireless Toolkit Podstawowy szkielet MIDletu Importowanie klas Komponenty interfejsu u ytkownika Zapis danych do pamiêci telefonu Pobieranie zawartoœci stron internetowych Odtwarzanie dÿwiêków Odczuwasz brak jakiejœ funkcji w telefonie komórkowym? Napisz samodzielnie program, który j¹ zrealizuje

Wstęp 7 Rozdział 1. Instalacja środowiska WTK 9 1.1. Pobranie komponentów z internetu 9 1.2. Instalacja oprogramowania 11 1.3. Omówienie środowiska J2ME Wireless Toolkit 12 1.3.1. KToolbar 12 1.3.2. OTA Provisioning 13 Rozdział 2. Pierwszy MIDlet 17 2.1. Tworzenie nowego projektu 17 2.2. Podstawowy szkielet MIDletu 18 2.2.1. Importowanie pakietów 18 2.2.2. Deklaracja klasy 19 2.2.3. Deklaracja koniecznych metod 19 2.2.4. Konstruktor 20 2.3. Publikowanie MIDletu 23 Rozdział 3. Interfejs użytkownika w MIDletach 27 3.1. MID Profile nie wszystkie urządzenia mają takie same możliwości 28 3.2. Słuchacze zdarzeń (Listener) a komponenty 29 3.3. Najczęściej używane komponenty 30 3.3.1. Command polecenie 30 3.3.2. TextField pole tekstowe 32 3.3.3. StringItem (nie)zwykły tekst 35 3.3.4. ChoiceGroup lista wyboru 38 3.3.5. Image i ImageItem obrazki 42

4 J2ME. Java dla urządzeń mobilnych Ćwiczenia 3.3.6. Canvas i TextBox inne sposoby wykorzystania powierzchni wyświetlacza 48 3.3.7. Timer zegar i regulator 54 Rozdział 4. Zapisywanie i odczytywanie informacji w telefonie 59 4.1. Sposób I wykorzystanie plików z archiwów JAR 59 4.2. Sposób II wykorzystywanie RMS 64 4.2.1. Zapisywanie danych 65 4.2.2. Wczytywanie danych 69 4.2.3. Wykorzystanie klas ByteArrayInputStream i ByteArrayOutputStream do ułatwienia pracy z RMS 72 Rozdział 5. Urządzenia mobilne a internet 79 5.1. Zasady korzystania z klas gniazdek 80 5.2. Używanie interfejsu HttpConnection do pobierania stron internetowych 84 5.3. SocketConnection interfejs do ogólnej komunikacji między urządzeniami 93 Rozdział 6. Odtwarzanie dźwięków 105 6.1. Pakiet javax.microedition.media 105 Rozdział 7. Projekt aplikacja Baza Kontaktów 109 7.1. Tworzenie interfejsu użytkownika 109 7.2. Obsługa dostępu do danych 112 7.3. Obsługa interfejsu użytkownika 120 Dodatek A 127 A.1. Komentarze 127 A.2. Podstawowe elementy programu 128 A.2.1. Zmienne 128 A.2.2. Operatory relacji 130 A.2.3. Operator trójargumentowy 131 A.2.4. Operatory logiczne 131 A.3. Instrukcje złożone (sterujące) 131 A.3.1. Instrukcja warunkowa 132 A.3.2. Instrukcja Switch 132 A.4. Pętle 133 A.5. Tablice 135 A.6. Klasy 135 A.7. Dziedziczenie 138 A.8. Interfejsy 140

Spis treści 5 A.9. Pakiety 141 A.10. Tworzenie obiektów 142 A.10.1. Metody statyczne 142 A.11. Klasa String 144 A.12. Rzutowanie 145 A.13. Konstrukcja try..catch 146 Bibliografia 147

W tym rozdziale zapoznasz się ze schematem typowego MIDletu. Następnie wykorzystasz go do napisania aplikacji wyświetlającej na ekranie emulatora tekst. Osobom, które nie programowały wcześniej w Javie (lub żadnym innym języku programowania), polecam zapoznanie się z Dodatkiem A. Opisano w nim najważniejsze elementy języka Java (głównie te, które wykorzystasz w pracy nad MIDletami). W poniższym ćwiczeniu utworzymy nowy projekt. Wykorzystamy go później do stworzenia MIDletu. ĆWICZENIE 2.1 Utworzenie projektu przy pomocy środowiska WTK Uruchom środowisko WTK i utwórz nowy projekt. 1. Otwórz program J2ME Wireless Toolkit. 2. Kliknij przycisk New Project. 3. W pole Project Name wpisz projekt1, a w pole MIDlet Class Name klasa1.

18 J2ME. Java dla urządzeń mobilnych Ćwiczenia 4. W okienku Settings przejdź na zakładkę MIDlets i upewnij się, że w polu Class znajduje się wartość klasa1. Kliknij przycisk OK. Spróbuj teraz skompilować program poleceniem Build. Po wykonaniu wszystkich operacji powinien wyświetlić się ciąg komunikatów: Project settings saved Building "projekt1" No sources to compile Build failed MIDlet nie może zostać skompilowany, gdyż kompilator nie może odnaleźć kodu źródłowego. Można wyciągnąć z tego ważny wniosek środowisko WTK nie tworzy plików zawierających kody źródłowe. Nie generuje też najprostszych nawet schematów aplikacji. Musimy zatem utworzyć ów schemat sami. 2.2.1. Importowanie pakietów Na początku musimy określić, jakie pakiety należy zaimportować do naszej aplikacji. W pierwszym programie wykorzystamy dwa spośród nich: javax.microedition.lcdui oraz javax.microedition.midlet Jaka jest rola tych pakietów w tworzeniu aplikacji? Pakiet javax.microedition.midlet, a w szczególności znajdująca się w nim klasa MIDlet (jest to klasa bazowa dla wszystkich klas MIDletów), dostarcza podstawowych funkcji, takich jak zamykanie aplikacji. W pakiecie javax.microedition.lcdui znajdują się wszelkiego rodzaju komponenty graficzne, czyli klasy odpowiedzialne za wyświetlanie elementów graficznych (np. pól tekstowych, tekstów, list wyboru itd.).

2.2.2. Deklaracja klasy Rozdział 2. Pierwszy MIDlet 19 Skoro dysponujemy już potrzebnymi elementami, możemy przystąpić do projektowania klasy. Będzie ona dziedziczyła po klasie MIDlet stąd deklaracja: public class klasa1 extends MIDlet Proszę zwrócić uwagę, iż trzeba podać tę samą nazwę, którą wpisaliśmy przy tworzeniu projektu w programie Wireless Toolkit (klasa1). 2.2.3. Deklaracja koniecznych metod Dziedziczenie po klasie MIDlet zobowiązuje nas do zdefiniowania trzech metod, które w klasie MIDlet zostały oznaczone jako abstrakcyjne. Metody abstrakcyjne nie zawierają żadnej treści i zmuszają programistów tworzących klasy pochodne do samodzielnego ich zdefiniowania. Metody abstrakcyjne, o których mowa, to: protected void startapp() protected void pauseapp() protected void destroyapp(boolean unconditional) Są one bezpośrednio związane ze stanem, w jakim znajduje się MIDlet. W momencie uruchamiania aplikacji wywołana zostaje metoda start- App(). Jeśli chcemy zwolnić zaalokowane wcześniej zasoby, możemy użyć metody destroyapp() przed zakończeniem działania aplikacji. Metoda pauseapp() jest swoistym ewenementem, gdyż istnienie takiej metody ma sens tylko w telefonach komórkowych (lub innych urządzeniach z możliwością wykonywania połączeń telefonicznych). Zostaje ona wywołana w chwili, gdy ktoś dzwoni i telefon musi zająć się obsługą rozmowy. Jeśli zatem nasz MIDlet wykonuje jakieś operacje w tle, np. pobieranie pliku z internetu, w metodzie pauseapp() możemy zapisać informację o stanie pobierania w pamięci telefonu. Działanie aplikacji nie jest jednak zatrzymane na zawsze w pewnym momencie rozmowa kończy się i telefon powraca do zatrzymanego programu. Wtedy to zostaje ponownie wywołana metoda startapp(). Uważny Czytelnik (lub osoba, która zajrzała do dalszych rozdziałów książki) zauważy, że są czynności, które aplikacja może wykonać tylko raz np. utworzenie komponentów graficznych. Wykonanie tego procesu kilka razy (w przypadku przerywania aplikacji) spowodowałoby

20 J2ME. Java dla urządzeń mobilnych Ćwiczenia w najlepszym razie dziwne zachowanie naszego MIDletu. W związku z tym tworzenie interfejsu i inne operacje jednorazowe wykonuje się w specjalnej metodzie, zwanej konstruktorem. 2.2.4. Konstruktor W poprzednim akapicie została wyjaśniona rola konstruktora w działaniu MIDletu. Jego deklaracja wygląda prosto: public klasa1() Warto pamiętać, iż konstruktor jest wywoływany PRZED metodą start- App(), co może być przydatne np. przy alokowaniu zasobów lub tworzeniu wątków. Po omówieniu schematu możemy przystąpić do pisania pierwszej aplikacji MIDletu wypisującego na ekranie krótki tekst. W tym celu najpierw wykonamy ćwiczenie 2.2 utworzenie pliku, w którym umieścimy kod źródłowy. ĆWICZENIE 2.2 Utworzenie pliku, w którym znajdzie się kod źródłowy MIDletu Przygotuj plik, w którym zostanie zapisany kod programu. Musi on znajdować się w określonej lokalizacji (zgodnej z ustawieniami projektu). 1. Uruchom program Eksplorator Windows. 2. Przejdź do katalogu c:\wtk22\apps\projekt1\src (jeśli środowisko WTK zostało zainstalowane w domyślnym katalogu). 3. Utwórz plik o nazwie klasa1.java (w systemie Windows kliknij prawym przyciskiem myszy puste pole w folderze, następnie z menu wybierz opcję Nowy/Dokument tekstowy i wpisz nazwę pliku). 4. Kliknij dwukrotnie ikonę nowo utworzonego pliku. Jeśli nie instalowałeś wcześniej żadnego środowiska programistycznego Javy, system poprosi Cię o wybranie programu, który będzie używany przy edycji plików o rozszerzeniu.java. Dla naszej pracy nie ma to znaczenia ważne jest tylko, aby edytor zapisywał tekst bez żadnych dodatkowych znaczników (jak w przypadku formatu.txt).

Rozdział 2. Pierwszy MIDlet 21 W systemie Windows należy zwrócić uwagę, czy włączone jest pokazywanie rozszerzeń plików znanych typów. W tym celu, w oknie Eksploratora Windows z paska narzędzi wybierz opcję Narzędzia/ Opcje Folderów, następnie wybierz zakładkę Widok i upewnij się, że usunięte zostało zaznaczenie opcji Ukryj rozszerzenia znanych typów plików. Jeśli opcja ta jest włączona, wtedy wykonanie kroku 3. z poprzedniego ćwiczenia spowoduje utworzenie pliku klasa1.java.txt, co, rzecz jasna, nie jest naszym celem. Proces tworzenia pliku kodu źródłowego jest zawsze taki sam znajduje się on w podkatalogu /src katalogu projektu (np. c:\wtk22\apps\ projekt1\src). Kod, który trzeba zawrzeć w pliku klasa1.java, znajduje się poniżej (oczywiście, bez numerów linijek). ĆWICZENIE 2.3 Program wypisze na ekranie emulatora tekst Witaj swiecie! Napisz program, który wyświetli na ekranie podany w kodzie tekst. Dodatkowo, okienko programu będzie miało określony tytuł. 1: import javax.microedition.lcdui.*; 2: import javax.microedition.midlet.midlet; 3: 4: public class klasa1 extends MIDlet 5: { 6: public klasa1() 7: { 8: Form formatka = new Form("Pierwszy MIDlet"); 9: formatka.append("witaj swiecie!"); 10: Display ekran = Display.getDisplay(this); 11: ekran.set1urrent(formatka); 12: } 13: public void startapp() 14: { 15: } 16: public void pauseapp() 17: { 18: } 19: public void destroyapp(boolean unconditional) 20: { 21: } 22:}

22 J2ME. Java dla urządzeń mobilnych Ćwiczenia Można zauważyć pewne różnice między powyższym kodem a opisanym wcześniej schematem aplikacji. Przede wszystkim, z pakietu javax.microedition.midlet zaimportowaliśmy tylko klasę MIDlet. Kolejną różnicę widać w definicjach metod zamiast słowa kluczowego protected, widnieje słowo public. W naszym przypadku zastosowanie obydwu wariantów nie ma znaczenia różnica między nimi została opisana w Dodatku. Najistotniejszym fragmentem kodu są oczywiście wiersze 8 11, gdyż to w nich zawarte są kolejne etapy tworzenia interfejsu graficznego. W wierszu 8. tworzymy pojemnik na inne graficzne komponenty, czyli formę, zwaną też formatką lub formularzem. Następnie do formatki dodajemy tekst. W tym momencie dysponujemy przygotowaną do wyświetlenia formą. Aby ją jednak wyświetlić, konieczne będzie utworzenie obiektu menedżera ekranu, który odpowiada za zarządzanie wyświetlaniem formatek. Każdy MIDlet posiada swój obiekt menedżera, który pobieramy w wierszu 10. Wreszcie, w wierszu 11. wyświetlamy przy pomocy metody setcurrent() utworzony obiekt formy. Te oraz inne komponenty graficzne zostaną omówione w następnym rozdziale. Po zapisaniu kodu źródłowego możemy przystąpić do jego kompilacji i uruchomienia przy pomocy poznanych wcześniej poleceń Build i Run. Korzystając z przycisku opcji, należy wybrać opcję Launch. Na rysunku 2.1 widać nasz pierwszy MIDlet w akcji. Rysunek 2.1. MIDlet w działaniu

Rozdział 2. Pierwszy MIDlet 23 W tym momencie tworzenia aplikacji dysponujemy już działającym programem. Nadszedł czas na opublikowanie naszego wiekopomnego dzieła w internecie. Istnieją dwie ogólne metody przenoszenia MIDletu z komputera na telefon komórkowy. Pierwsza polega na przesłaniu programu przy użyciu różnego rodzaju kabli (USB) bądź połączeń bezprzewodowych (IrDA) i wykorzystaniu oprogramowania dołączonego do telefonu. Takie rozwiązanie posiada jedną niezaprzeczalną zaletę. Program można wgrywać wiele razy bez ponoszenia kosztów pobierania z internetu. Niestety, opisanie wszystkich możliwych sytuacji przesyłania danych jest trudne, w związku z tym zajmować się będziemy jedynie publikowaniem MIDletu w internecie. Do wykonania poniższego ćwiczenia niezbędny jest dostęp do serwera, który ma przypisane następujące typy MIME dla rozszerzeń:.jad text/vnd.sun.j2me.app-descriptor.jar application/java-archive Jeśli opisany poniżej proces zakończy się niepowodzeniem, poproś administratora o ustawienie tych typów MIME. Oczywiście, konto na serwerze musi mieć specjalny katalog (najczęściej o nazwie www lub htdocs), w którym umieszczone pliki są ogólnie dostępne i mogą być pobierane przez każdego. W poniższym ćwiczeniu przygotujemy MIDlet do wysłania na serwer. ĆWICZENIE 2.4 Przygotowanie MIDletu do publikacji w internecie Zmień ustawienia projektu konieczne do jego prawidłowego działania. Utwórz archiwum JAR. 1. Uruchom środowisko Wireless Toolkit, a następnie otwórz projekt projekt1. 2. Kliknij przycisk Settings i przejdź na zakładkę Required.

24 J2ME. Java dla urządzeń mobilnych Ćwiczenia 3. W polu MIDlet-Jar-URL wpisz adres internetowy URL do pliku z archiwum Javy (rozszerzenie.jar). W tym celu sprawdź, jaki jest adres internetowy do katalogu, w którym będziesz umieszczał MIDlet (np. http://www.serwer.org/katalog/), a następnie dopisz do tej ścieżki nazwę archiwum w postaci nazwa_projektu.jar (w naszym przypadku projekt1.jar). Można również wypełnić pole Vendor, wpisując w nie swoje imię i nazwisko. Jeśli będziesz chciał uruchomić MIDlet na normalnym telefonie, przejdź na zakładkę API Selection i z listy Target Platform wybierz opcję MIDP 1.0. Potwierdź zmiany, klikając OK. 4. Utwórz archiwum JAR, wybierając opcję Create Package z menu Project/Package. W wyniku powyższych operacji powstały dwa pliki gotowe do wysłania na serwer. Niestety, musimy utworzyć jeszcze jeden plik stronę internetową zawierającą odnośnik do MIDletu, która jest wymagana przez niektóre modele telefonów, a także przez nasz emulator. Kod HTML strony znajduje się poniżej; należy zapisać go pod nazwą projekt1.html i umieścić w podkatalogu /bin naszego projektu. <html> <head> <title>projekt1</title> </head> <body> <a href="http://www.serwer.com/katalog/projekt1.jad">projekt1.jad</a> </body> </html> Oczywiście, atrybut href odnośnika należy zmodyfikować zgodnie z adresem URL serwera. Możemy teraz przystąpić do kolejnego ćwiczenia, dzięki któremu będziemy w stanie pobrać i uruchomić MIDlet. W tym celu wykonamy ćwiczenie 2.5. Ze względu na różnorodność programów do obsługi kont FTP i rodzajów serwerów będzie to raczej zestaw wskazówek przydatnych przy wysyłaniu MIDletu na serwer.

Rozdział 2. Pierwszy MIDlet 25 ĆWICZENIE 2.5 Wysyłanie programu na serwer Wyślij pliki MIDletu na serwer FTP. Musisz posiadać konto, które umożliwia publikowanie plików wszystkim internautom. 1. Uruchom program, przy pomocy którego zamierzasz wysłać pliki na serwer (np. Total Commander). 2. Połącz się z serwerem i przejdź do katalogu, w którym umieścisz MIDlet (zgodnie z określonymi wcześniej zasadami). 3. Wyślij na serwer pliki: projekt1.html, projekt1.jad, projekt1.jar. 4. Rozłącz się z serwerem. To już koniec pracy nad pierwszym MIDletem! Nie pozostało nam nic innego, jak wykonanie ćwiczenia 2.6, w którym pobierzemy naszą aplikację przy użyciu programu OTA Provisioning. ĆWICZENIE 2.6 Pobieranie MIDletu z internetu i uruchamianie w programie OTA Provisioning Pobierz MIDlet, korzystając z programu OTA Provisioning. Następnie uruchom go i przetestuj działanie. 1. Uruchom program OTA Provisioning, korzystając ze skrótu znajdującego się w Menu Start. 2. Wybierz opcję Apps, a następnie uruchom program Install Application. 3. W polu tekstowym podaj adres URL do pliku strony internetowej. Jeśli podasz adres do pliku JAD, emulator zwróci błąd. Wybierz opcję Menu i z listy opcję Go. 4. Dalej postępuj tak, jak w ćwiczeniu 1.4 w krokach 9 11 (z uwzględnieniem nazwy MIDletu). Gratulacje! Jeśli wszystko zrealizowałeś zgodnie z wytycznymi, proces pobierania i instalowania MIDletu powinien zakończyć się powodzeniem, a efekt jego działania powinien być identyczny jak w przypadku

26 J2ME. Java dla urządzeń mobilnych Ćwiczenia uruchamiania MIDletu przy użyciu WTK. Jeśli jednak występują błędy, upewnij się, że: Adres URL do serwera we wszystkich miejscach jest wpisany prawidłowo, Na serwerze znajdują się wszystkie pliki potrzebne do prawidłowego działania MIDletu, Adres URL jest poprawny (w razie wątpliwości co do jego poprawności, poproś administratora serwera o pomoc). Trzeba pamiętać o tym, iż nie sztuką jest napisać MIDlet działający w środowisku WTK. Sztuką jest napisać MIDlet, który będzie działał na wszystkich (lub przynajmniej większości) telefonach, czyli urządzeniach docelowych. Najczęściej to właśnie z działaniem telefonów pojawiają się największe problemy. My, programiści użytkownicy J2ME, rzadko mamy wpływ na sposób implementacji J2ME w poszczególnych modelach telefonów. W związku z tym, jeśli na niektórych (zwłaszcza starszych) telefonach MIDlet nie działa (a teoretycznie powinien), nie zawsze winy należy doszukiwać się po stronie programu. Czasem wynika ona z zainstalowanych w telefonach wersjach Javy.