Programowanie aplikacji dla urz¹dzeñ mobilnych z systemem Windows Mobile



Podobne dokumenty
Programowanie aplikacji dla urz¹dzeñ mobilnych z systemem Windows Mobile

Microsoft Management Console

Programowanie aplikacji dla urządzeń mobilnych z systemem Windows Mobile / Jacek Matulewski, Bartosz Turowski. Gliwice, cop

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Wymiana du ych plików instrukcja dla klientów Grontmij Polska Sp z o. o.

Aplikacje internetowe i rozproszone - laboratorium

SINAMICS G120C STARTER. Tworzenie nowego projektu w trybie online.

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

SINAMICS G120C STARTER. Tworzenie nowego projektu w trybie offline.

PERSON Kraków

Konfiguracja programu Outlook 2007 do pracy z nowym serwerem poczty (Exchange)

Pracownia internetowa w ka dej szkole (edycja 2004/2005)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

SpedCust 5 instrukcja instalacji

Logowanie do systemu pocztowego GroupWise

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

Instrukcja programu PControl Powiadowmienia.

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

I. Zakładanie nowego konta użytkownika.

INSTRUKCJA KORZYSTANIA Z ELEKTRONICZNEJ ŚCIEŻKI WYKAZÓW

Konfiguracja historii plików

Pracownia internetowa w każdej szkole. Opiekun pracowni internetowej SBS 2003 PING

enova Workflow Obieg faktury kosztowej

emszmal 3: Automatyczne księgowanie przelewów w menedżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce)

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Spring MVC Andrzej Klusiewicz 1/18

dbsamples.udl lub przygotowany wcześniej plik dla Excela) i OK,

Instrukcja logowania do aplikacji ING Agent

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

INSTRUKCJA Panel administracyjny

Instrukcja instalacji oraz wykorzystania podpisu cyfrowego

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

VinCent Office. Moduł Drukarki Fiskalnej

System kontroli wersji SVN

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

emszmal 3: Eksport wyciągów do Subiekt (Su\Re\Ra) nexo (plugin dostępny wraz z dodatkiem Biznes)

Pracownia internetowa w szkole podstawowej (edycja 2004)

Wtedy wystarczy wybrać właściwego Taga z listy.

Przewodnik AirPrint. Ten dokument obowiązuje dla modeli atramentowych. Wersja A POL

PODRĘCZNIK UŻYTKOWNIKA

Instrukcja obsługi aplikacji Moduł 7 Business Ship Control dla InsERT Subiekt GT

MUltimedia internet Instrukcja Instalacji

Kancelaris - Zmiany w wersji 2.50

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

Firma Informatyczna JazzBIT

Instrukcja instalacji programu Plantator oraz transferu pliku danych z/do PC kolektor danych PT-20

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin

Rozliczenia z NFZ. Ogólne założenia. Spis treści

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

Zarządzanie Zasobami by CTI. Instrukcja

Instrukcja wprowadzania ocen do systemu USOSweb

Przyk ad konfiguracja MRP przy pomocy IO kontrolera Simatic S7-300 i switchy Scalance X

Archiwum Prac Dyplomowych

REJESTRATOR RES800 INSTRUKCJA OBSŁUGI

Instrukcja instalacji oprogramowania TSG wer. 5.0 z dost pem do danych poprzez sie Internet.

Pierwsze kroki. Krok 1. Uzupełnienie danych własnej firmy

Systemy mikroprocesorowe - projekt

Obowiązuje od 30 marca 2015 roku

Elementy i funkcjonalno

Adapter USB do CB32. MDH-SYSTEM ul. Bajkowa 5, Lublin tel./fax lub kom e mail: info@mdh-system.pl

INTENSE BUSINESS INTELLIGENCE PLATFORM

Instalacja i konfiguracja automatu synchronizacji CDN OFFLINE

Instrukcja wgrywania synoptyki pola (wersja modelu danych do 634)

Warszawa, r.

Zainstalowana po raz pierwszy aplikacja wymaga aktualizacji bazy danych obsługiwanych sterowników.


Usuni cie has a admina dodatek do Symfonia Kadry i P ace dla 1 firmy

INTERAKTYWNA APLIKACJA MAPOWA MIASTA RYBNIKA INSTRUKCJA OBSŁUGI

Przedmiot: Projektowanie dokumentów WWW. Laboratorium 3: Strona domowa cz. III Formularze. Opracował: Maciej Chyliński

Podręcznik Użytkownika Plus Internet dla Mac OS X lub wyższa. Huawei E398 LTE

BCS Manager Instrukcja Obsługi

46 Korzystanie z wyświetlacza. System Microsoft Windows XP. System Microsoft Windows Vista

PROCEDURA ADMINISTROWANIA ORAZ USUWANIA

Spis treści. Rozdział 1 ewyniki. mmedica - INSTR UKC JA UŻYTKO W NIKA

Dokumentacja użytkownika aplikacji mobilna Aplikacja Uczestnika Gry Miejskiej

Instrukcja postępowania w celu podłączenia do PLI CBD z uwzględnieniem modernizacji systemu w ramach projektu PLI CBD2

PRESTASHOP INTEGRATOR XL BY CTI INSTRUKCJA

Platforma zamówień personelu JOBMAN.pl

Co nowego w systemie Kancelaris 3.31 STD/3.41 PLUS

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Konfiguracja współpracy urządzeń mobilnych (bonowników).

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Instrukcja pod czenia komputera z systemem Microsoft Windows Vista/7 do sieci PWSZ-FREE-WIFI

1. Korzyści z zakupu nowej wersji Poprawiono Zmiany w słowniku Stawki VAT Zmiana stawki VAT w kartotece Towary...

Instrukcja pod czenia komputera z systemem Microsoft Windows XP do sieci PWSZ-FREE-WIFI

Zmiany w wersji 1.18 programu VinCent Office.

INSTRUKCJA WebPTB 1.0

db powernet Instalacja czytnika kart mikroprocesorowych (instrukcja)

INSTRUKCJA OBSŁUGI URZĄDZENIA: HC8201

INSTRUKCJA TESTOWANIA USŁUG NA PLATFORMIE ELA-ENT

Polityka prywatności strony internetowej wcrims.pl

elektroniczna Platforma Usług Administracji Publicznej

Instrukcja Obsługi STRONA PODMIOTOWA BIP

SZANOWNY INTERESANCIE

Regulamin usługi Wezwij PZU Pomoc

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

Pracownia internetowa w ka dej szkole (edycja 2004/2005)

Instrukcja obsługi. Oprogramowanie SAS 31

Transkrypt:

Idź do Spis treści Przykładowy rozdział Katalog książek Katalog online Zamów drukowany katalog Twój koszyk Dodaj do koszyka Cennik i informacje Zamów informacje o nowościach Zamów cennik Czytelnia Fragmenty książek online Kontakt Helion SA ul. Kościuszki 1c 44-100 Gliwice tel. 32 230 98 63 e-mail: helion@helion.pl Helion 1991 2010 Programowanie aplikacji dla urz¹dzeñ mobilnych z systemem Windows Mobile Autorzy: Jacek Matulewski, Bartosz Turowski ISBN: 978-83-246-2631-1 Format: 158 235, stron: 400 Zaprojektuj nowe aplikacje dla urz¹dzeñ mobilnych Œrodowisko Visual Studio i szkic projektu Wykorzystanie jêzyka C# i platformy.net Compact Zastosowanie grafiki trójwymiarowej z mobilnym Direct3D Urz¹dzenia przenoœne, pocz¹wszy od telefonów komórkowych, a skoñczywszy na GPS-ach i kieszonkowych odtwarzaczach wideo, s¹ dziœ niezwykle popularne. Wiele z nich ³¹czy w sobie tak przeró ne funkcje, e mo na je nazwaæ minikomputerami. Nic dziwnego, e pracuj¹ pod kontrol¹ uniwersalnego systemu operacyjnego, zdolnego obs³u yæ wiele ró nych aplikacji, który bez k³opotu mo na przenieœæ z jednego urz¹dzenia na drugie. Podobna kompatybilnoœæ samych aplikacji gwarantuje mo liwoœæ ich wielokrotnego wykorzystania w ró nych typach urz¹dzeñ, a u ytkownikom zapewnia komfort b³yskawicznego opanowania obs³ugi nowego telefonu czy aparatu fotograficznego. W ksi¹ ce Programowanie aplikacji dla urz¹dzeñ mobilnych i systemu Windows Mobile omówione zosta³o projektowanie aplikacji napisanych w jêzyku C# dla urz¹dzeñ dzia³aj¹cych pod kontrol¹ systemu Windows Mobile. Znajdziesz tu wszystkie aspekty pracy nad takim programem: pocz¹wszy od warunków œrodowiska programistycznego i uruchomieniowego, przez pisanie i testowanie kodu (z wyszczególnieniem elementów w³aœciwych aplikacjom projektowanym dla platformy.net Compact), a po przechowywanie danych w plikach XML czy bazie SQL Server Compact. Dowiesz siê tak e nieco wiêcej o wykorzystywaniu w urz¹dzeniach przenoœnych grafiki 3D. Œrodowisko programistyczne Visual Studio i emulatory Tworzenie, zapisywanie i wczytywanie projektu Uruchomienie aplikacji na rzeczywistym urz¹dzeniu Jêzyk C# i praktyka projektowania aplikacji dla platformy.net Compact Projektowanie kontrolek i kontrolki charakterystyczne dla platformy.net Compact Studium przypadku gra Reversi Obs³uga podstawowych funkcji telefonu i programu Outlook Detekcja stanu urz¹dzenia przenoœnego i dodatkowe funkcje urz¹dzeñ przenoœnych Przechowywanie danych w SQL Server Compact i plikach XML Grafika trójwymiarowa z mobilnym Direct3D Instalacja Windows Mobile 6 Professional SDK Zagwarantuj uniwersalnoœæ swoich aplikacji buduj je dla systemu Windows Mobile

Spis tre ci Wst p... 9 Rozdzia 1. Przygotowania... 11 rodowisko programistyczne Visual Studio... 11 Emulatory... 12 Urz dzenie przeno ne... 15 Remote File Viewer i Remote Registry Editor... 15 MyMobiler...18 Windows Mobile SDK... 18 Kilka s ów o Windows Mobile... 19 Rozdzia 2. Pierwsze kroki... 21 Tworzenie i zapisywanie projektu... 21 Rzut oka na rodowisko... 24 Korzystanie z kontrolek do projektowania interfejsu aplikacji... 26 Zapisywanie i wczytywanie projektu... 27 Analiza kodu aplikacji... 28 Elastyczno interfejsu aplikacji... 33 Metody zdarzeniowe... 35 Metoda zdarzeniowa reaguj ca na zmian pozycji suwaka... 35 Testowanie metody zdarzeniowej... 36 Przypisywanie istniej cej metody do zdarze komponentów... 39 Edycja metody zdarzeniowej... 40 Modyfikowanie w asno ci komponentów... 40 Wywo ywanie metody zdarzeniowej z poziomu kodu... 41 Uruchomienie aplikacji na rzeczywistym urz dzeniu... 42 Rozdzia 3. J zyk C#... 45 Platforma.NET... 45 Cele platformy.net... 45 rodowisko uruchomieniowe... 46 Kod po redni i podwójna kompilacja... 47 Nowe nazwy i skróty... 47 Podstawowe typy danych... 48 Deklaracja i zmiana warto ci zmiennej... 48 Typy liczbowe oraz znakowy... 49 Okre lanie typu zmiennej przy inicjacji (typ var)... 51 Operatory... 51

4 Programowanie aplikacji dla urz dze mobilnych z systemem Windows Mobile Konwersje typów podstawowych... 53 Operatory is i as... 54 a cuchy... 55 Typ wyliczeniowy... 58 Delegacje i zdarzenia... 59 Wyra enia lambda... 60 Typy warto ciowe i referencyjne... 62 Nullable... 63 Pude kowanie... 64 Sterowanie przep ywem... 64 Instrukcja warunkowa if..else... 64 Instrukcja wyboru switch... 65 P tle...66 Zwracanie warto ci przez argument metody... 67 Wyj tki... 68 Dyrektywy preprocesora... 71 Kompilacja warunkowa ostrze enia... 71 Definiowanie sta ych preprocesora... 72 Bloki... 73 Atrybuty... 73 Kolekcje... 74 Zwyk e tablice... 74 P tla foreach... 76 Sortowanie... 78 Kolekcja List... 79 Kolekcja SortedList i inne... 81 Tablice jako argumenty funkcji oraz metody z nieokre lon liczb argumentów... 81 Projektowanie typów... 82 Przyk ad struktury (Ulamek)... 83 Nowa forma inicjacji obiektów i tablic... 92 Implementacja interfejsu (na przyk adzie IComparable)... 92 Definiowanie typów parametrycznych... 94 Rozszerzenia... 101 Typy anonimowe... 102 Zapytania LINQ na przyk adzie kolekcji... 103 Pobieranie danych (filtrowanie i sortowanie)... 106 Najprostsza prezentacja pobranych danych... 106 Kalkulacje... 106 Wybór elementu... 107 Testowanie danych... 107 Prezentacja w grupach... 107 czenie zbiorów danych... 108 czenie danych z ró nych róde w zapytaniu LINQ operator join... 109 Mo liwo modyfikacji danych ród a... 109 Rozdzia 4. Praktyka projektowania aplikacji dla platformy.net Compact... 111 Rysowanie na ekranie... 112 Obs uga rysika... 113 Menu... 115 Zmiana orientacji ekranu... 118 Zamykanie i minimalizowanie aplikacji... 118 Reakcja aplikacji na prób zamkni cia okna... 119 Okno dialogowe wyboru pliku... 121

Spis tre ci 5 Notatnik... 124 Projektowanie interfejsu aplikacji... 124 Menu... 125 Edycja... 127 Menu kontekstowe... 130 Okna dialogowe i pliki tekstowe... 131 Zamykanie aplikacji... 136 Opcje widoku... 138 Drzewo katalogów... 138 Rozdzia 5. Projektowanie kontrolek... 147 Projekt kontrolki i budowa interfejsu... 147 W asno ci... 150 Aplikacja testuj ca... 150 Zdarzenia... 152 Dodanie kontrolki do podokna Toolbox... 154 Rozdzia 6. Studium przypadku gra Reversi... 157 Tworzenie rodowiska do testowania klasy... 158 Pola, metody i w asno ci. Zakres dost pno ci... 160 Konstruktor klasy... 162 Interfejs aplikacji testuj cej... 162 Implementacja zasad gry... 165 Metody zdarzeniowe... 169 Elastyczny interfejs... 172 Korzystanie z zasobów... 183 Wykrywanie szczególnych sytuacji w grze... 183 Metoda sprawdzaj ca, czy gracz mo e wykona ruch... 186 Warunki zako czenia gry i wy onienie zwyci zcy... 187 Indeksatory... 190 Menu... 191 Dziedziczenie... 193 Jak nauczy komputer gra w gr Reversi?... 194 Metoda proponuj ca najlepszy ruch... 195 Podpowied i ruch wykonywany przez komputer... 197 Gra z komputerem... 199 Opó nienie ruchu komputera... 200 Uzupe nienie menu... 201 Co dalej?... 202 Rozdzia 7. Kontrolki charakterystyczne dla platformy.net Compact... 203 InputPanel... 203 Notification... 205 HardwareButton... 208 Rozdzia 8. Obs uga podstawowych funkcji telefonu i programu Outlook... 211 Cellular Emulator... 211 Pod czanie emulatora urz dzenia przeno nego do programu Cellular Emulator.. 212 Kontakty Outlook... 213 Tworzenie aplikacji wy wietlaj cej list kontaktów... 214 Tworzenie przyk adowych kontaktów... 215 Edycja nowego kontaktu... 216 Inicjowanie po cze telefonicznych... 218 Wysy anie krótkich wiadomo ci tekstowych (SMS)... 220 Przygotowanie projektu aplikacji s u cej do wysy ania wiadomo ci SMS... 221

6 Programowanie aplikacji dla urz dze mobilnych z systemem Windows Mobile Wybór adresata i wys anie wiadomo ci SMS... 222 Numer telefonu w parametrach uruchomienia aplikacji... 224 Korzystanie z aplikacji wysy aj cej SMS-y jak z okna dialogowego... 226 Wysy anie poczty elektronicznej... 228 Metoda wybieraj ca adres e-mail z listy kontaktów... 228 Wybór za cznika, komponowanie i wysy anie listu e-mail... 229 Korzystanie z aplikacji wysy aj cej listy jak z okna dialogowego... 232 Przechwytywanie wiadomo ci SMS... 234 Tworzenie aplikacji przechwytuj cej wiadomo ci... 234 Trwa e monitorowanie wiadomo ci... 237 Kalendarz i zadania... 239 Lista zada i terminów zapisanych w kalendarzu... 239 Dodawanie nowych terminów i zada... 240 Rozdzia 9. Detekcja stanu urz dzenia przeno nego... 243 Wykrywanie dodatkowych urz dze... 243 Bateria... 247 Reakcja na zmian stanu urz dzenia... 248 Reakcja z uruchomieniem aplikacji... 250 Stan telefonu i po czenia przychodz ce... 256 Rozdzia 10. Dodatkowe funkcje urz dze przeno nych... 261 Aparat fotograficzny i kamera... 261 Obs uga wbudowanego aparatu fotograficznego... 262 Wybór obrazu za pomoc okna dialogowego SelectPictureDialog... 265 Film... 266 GPS... 267 Przygotowanie biblioteki... 267 Wy wietlanie informacji z modu u GPS... 268 Instalacja i uruchomienie aplikacji FakeGPS na emulatorze urz dzenia przeno nego... 270 Akcelerometr... 273 Rozdzia 11. Przechowywanie danych w SQL Server Compact... 277 Minimum wiedzy o SQL... 277 Select... 278 Insert... 278 Delete... 279 Update... 279 ADO.NET... 279 Projekt aplikacji z do czon baz danych... 279 Konfiguracja komponentu DataSet... 281 Podgl d danych udost pnianych przez komponent DataSet... 285 Prezentacja danych w siatce DataGridView... 285 Projektowanie formularzy prezentuj cych pojedyncze rekordy... 287 Sortowanie... 289 Filtrowanie... 290 Odczytywanie z poziomu kodu warto ci przechowywanych w komórkach... 290 Aktualizacja zmodyfikowanych danych... 291 LINQ to DataSet... 294 Zapytanie... 294 Korzystanie z rozszerze LINQ... 295 Dowolno sortowania i filtrowania pobieranych danych... 295

Spis tre ci 7 Rozdzia 12. Przechowywanie danych w plikach XML (LINQ to XML)... 297 Tworzenie pliku XML za pomoc klas XDocument i XElement... 298 Pobieranie warto ci z elementów o znanej pozycji w drzewie... 301 Przenoszenie danych z kolekcji do pliku XML... 303 Przenoszenie danych z bazy danych (komponentu DataSet) do pliku XML... 304 Tabele w plikach XML. Zapytania LINQ... 306 Modyfikacja pliku XML... 307 Serializacja obiektów do pliku XML... 308 Serializacja obiektu do pliku XML... 308 Deserializacja obiektu z pliku XML... 310 Rozdzia 13. Grafika trójwymiarowa z mobilnym Direct3D... 311 Szablon projektu aplikacji korzystaj cej z Direct3D... 312 Rysowanie trójk ta... 314 Trzy macierze... 317 Kamera i perspektywa... 317 Poruszanie trójk tem za pomoc rysika... 320 Obracanie trójk ta... 323 Zmiana orientacji ekranu... 325 Dygresja: sprz enie kamery z akcelerometrem... 326 Sze cian... 328 Teksturowanie... 331 O wietlenie... 335 Rozdzia 14. Internet w aplikacjach mobilnych... 341 Po czenie z internetem... 341 Pod czanie emulatora urz dzenia przeno nego do internetu... 342 Internetowy t umacz... 344 Korzystanie z us ug sieciowych (web services)... 348 Sposób pierwszy... 349 Sposób drugi... 351 Tworzenie w asnej us ugi sieciowej... 353 FakeServer, czyli prawie serwer... 358 Dodatek A Instalacja Windows Mobile 6 Professional SDK... 361 Dodatek B Przygotowywanie pakietów instalacyjnych aplikacji... 365 Tworzenie projektu instalatora... 365 Wybór plików... 367 Katalogi specjalne. Tworzenie skrótów... 368 Plik CAB... 369 Instalacja... 369 Instalatory platformy.net i bazy danych SQL Server Compact... 372 Skorowidz... 373

Rozdzia 8. Obs uga podstawowych funkcji telefonu i programu Outlook W tym rozdziale opisz, jak z poziomu aplikacji mo na u ywa funkcji urz dzenia przeno nego charakterystycznych dla telefonu komórkowego. Za ich obs ug odpowiadaj klasy do czane do platformy.net Compact, których nie znajdziemy w jej pe nej wersji 1. Jednak zanim do tego przejdziemy, po czymy emulator urz dzenia przeno nego z programem Cellular Emulator imituj cym fikcyjn sie komórkow. To umo liwi darmowe testowanie projektowanych aplikacji. Cellular Emulator Program Cellular Emulator dostarczany jest razem z Windows Mobile 6 SDK (zob. dodatek A). Jest to emulator sieci komórkowej wspó pracuj cy z emulatorami urz dze przeno nych dost pnych w Visual Studio. Pozwala na inicjowanie po cze z emulatorem telefonu oraz ledzenie po cze wychodz cych. Za jego pomoc mo na równie wysy a na emulowane urz dzenie wiadomo ci SMS (ang. Short Message Service), jak i odbiera wiadomo ci wys ane z emulatora. Mo emy te zmienia i nadzorowa parametry sieci oraz komendy AT (polecenia steruj ce pozwalaj ce na komunikacj mi dzy komputerem i modemem lub, jak w tym przypadku, mi dzy urz dzeniem przeno nym i sieci komórkow ). Jednym s owem, Cellular Emulator tworzy wirtualne rodowisko sieci komórkowej wokó emulowanego urz dzenia. 1 Oznacza to m.in., e w przeciwie stwie do projektów opisywanych w rozdzia ach 2. 6. aplikacji korzystaj cych z tych specyficznych klas w ogóle nie b dziemy mogli uruchomi na komputerze PC.

212 Programowanie aplikacji dla urz dze mobilnych z systemem Windows Mobile Pod czanie emulatora urz dzenia przeno nego do programu Cellular Emulator Rysunek 8.1. czenie emulatora urz dzenia z programem Cellular Emulator 1. Otwieramy program Cellular Emulator (dost pny z menu Start/Wszystkie programy/windows Mobile 6 SDK/Tools/) i odczytujemy nazw portu szeregowego w lewym dolnym rogu okna programu (np. COM4, por. rysunek 8.1). 2. Mapujemy ten port w emulatorze. W tym celu: a) Uruchamiamy Visual Studio, a nast pnie z menu Tools wybieramy polecenie Connect to Device. Pojawi si okno dialogowe, w którym wskazujemy

Rozdzia 8. Obs uga podstawowych funkcji telefonu i programu Outlook 213 emulator urz dzenia przeno nego o nazwie Windows Mobile 6 Professional Emulator (wersje Classic nie cz si z sieci komórkow ). Klikamy przycisk Connect. b) Po uruchomieniu emulatora z jego menu File wybieramy polecenie Configure, a nast pnie na zak adce Peripherals w polu Serial port 0 wpisujemy nazw portu szeregowego odczytanego z programu Cellular Emulator (np. COM4, rysunek 8.1) i klikamy OK. c) Pojawi si komunikat o czeniu z nowym urz dzeniem, ale dopiero ponowne uruchomienie systemu Windows na emulatorze spowoduje zalogowanie do fikcyjnej sieci komórkowej. Mo emy to wymusi, wybieraj c z menu File emulatora polecenie Reset/Soft. Po restarcie systemu emulator urz dzenia przeno nego powinien si zalogowa do emulowanej sieci, co sygnalizuje ikona widoczna na pasku tytu u w emulowanym urz dzeniu (rysunek 8.2). Je li zamykaj c program emulatora urz dzenia, zapiszemy jego stan, to ustawienia portu szeregowego zostan równie zapisane, co oszcz dzi nam pracy przy kolejnym uruchomieniu. Przed ponownym w czeniem emulatora nale y oczywi cie pami ta o uruchomieniu programu Cellular Emulator. Rysunek 8.2. Emulator widzi sie komórkow Kontakty Outlook W ka dym telefonie mamy dost p do zbioru kontaktów. W najprostszym przypadku ograniczaj si one tylko do nazwy i numeru telefonu. W systemach Windows Mobile s one jednak znacznie bardziej rozbudowane; za ich obs ug odpowiedzialna jest

214 Programowanie aplikacji dla urz dze mobilnych z systemem Windows Mobile mobilna wersja programu Outlook. Mo liwy jest dost p do kontaktów zarówno odczyt, jak i edycja z poziomu platformy.net Compact. Pozwalaj na to klasy z przestrzeni nazw Microsoft.WindowsMobile.PocketOutlook. Tworzenie aplikacji wy wietlaj cej list kontaktów Zacznijmy od stworzenia aplikacji typu Smart Device wy wietlaj cej wszystkie pola w ksi ce kontaktów: 1. W rodowisku Visual Studio tworzymy nowy projekt aplikacji dla urz dzenia przeno nego na platform Windows Mobile 6 Professional i.net Compact Framework Version 3.5. Projekt ów nazwijmy Kontakty. 2. Z podokna Toolbox wybieramy siatk DataGrid, umieszczamy j na formie, a nast pnie, korzystaj c z podokna Properties, ustawiamy jej w asno Dock na warto Fill. 3. Do czmy do projektu referencj do biblioteki DLL zawieraj cej klasy pozwalaj ce na korzystanie z mo liwo ci programu Outlook na urz dzeniu przeno nym. W tym celu w menu Project wybieramy Add Reference, a nast pnie na zak adce.net wybieramy bibliotek Microsoft.WindowsMobile.PocketOutlook i klikamy OK. 4. Przechodzimy do edycji kodu (klawisz F7) i do zbioru deklaracji przestrzeni nazw na pocz tku pliku Form1.cs dodajemy: using Microsoft.WindowsMobile.PocketOutlook; 5. W klasie formy Form1 definiujemy nowe pole reprezentuj ce sesj programu Outlook: OutlookSession outlook = new OutlookSession(); 6. Natomiast do konstruktora klasy Form1 dodajemy instrukcj wskazuj c kolekcj kontaktów dost pn w sesji programu Outlook jako ród o danych dla siatki datagrid1: datagrid1.datasource = outlook.contacts.items; 7. Na pasku narz dzi Device z rozwijanej listy Target Device wybieramy Windows Mobile 6 Professional Emulator (emulator) lub Windows Mobile 6 Device (rzeczywiste urz dzenie) i uruchamiamy aplikacj, naciskaj c F5. W punkcie 3. dodali my referencj do biblioteki PocketOutlook, która jest odpowiedzialna za obs ug programu Outlook dla urz dze mobilnych, a tym samym za list kontaktów, kalendarz, zapisywanie i wy wietlanie zada, wysy anie i odbieranie wiadomo ci SMS i poczt elektroniczn, a zatem za wi kszo funkcji inteligentnego telefonu. W tym rozdziale b dziemy z tej biblioteki korzysta bardzo cz sto. Wi kszo potrzebnych funkcjonalno ci zapewnia obiekt zdefiniowany w punkcie 5., tj. instancja klasy OutlookSession, reprezentuj ca uruchomion instancj aplikacji Outlook Mobile. Lista kontaktów dost pna jest poprzez pole Contacts tego obiektu, którego kolekcj Items wskazali my jako ród o danych dla siatki datagrid1 pokazywanej w oknie projektowanej aplikacji.

Rozdzia 8. Obs uga podstawowych funkcji telefonu i programu Outlook 215 Po uruchomieniu aplikacji na do czonym rzeczywistym urz dzeniu przeno nym powinni my zobaczy tabel zawieraj c wszystkie zdefiniowane w nim kontakty programu Outlook 2 (rysunek 8.3). Jednak je li korzystamy z emulatora, to najpewniej ksi ka kontaktów jest pusta. Mo emy oczywi cie wype ni j sami kilkoma kontaktami, ale mo emy to równie zrobi z poziomu aplikacji. Tym w a nie zajmiemy si w kolejnym zadaniu. Rysunek 8.3. Lista kontaktów (w emulatorze jest oczywi cie pusta) Tworzenie przyk adowych kontaktów Utwórzmy w menu pozycj odpowiedzialn za dodanie do ksi ki kilku przyk adowych kontaktów: 1. Otwórzmy menu Outlook, a w nim pozycj Dodaj przyk adowe kontakty (menuitem2). 2. Klikaj c dwukrotnie now pozycj w podgl dzie formy, stworzymy domy ln metod zdarzeniow zwi zan ze zdarzeniem Click tej pozycji. Umieszczamy w niej kod widoczny na listingu 8.1. Listing 8.1. Dodawanie przyk adowych kontaktów private void menuitem2_click(object sender, EventArgs e) Contact kontakt = outlook.contacts.items.addnew(); kontakt.firstname = "Jan"; 2 Inn spraw jest odczytanie kontaktów zapisanych na karcie SIM. Jest to mo liwe, cho Windows Mobile preferuje ich przechowywanie w bazie programu Outlook. Zadanie to u atwi by projekt Smart Device Framework (SDF) firmy OpenNETCF dost pny na stronie http://www.opennetcf.com/products/ SmartDeviceFramework/tabid/65/Default.aspx.

216 Programowanie aplikacji dla urz dze mobilnych z systemem Windows Mobile kontakt.lastname = "Kowalski"; kontakt.mobiletelephonenumber = "7272024"; kontakt.email1address = "jankow@afero.pl"; kontakt.businesstelephonenumber = "7272020"; kontakt.update(); kontakt = outlook.contacts.items.addnew(); kontakt.firstname = "Bartosz"; kontakt.lastname = "Turowski"; kontakt.email1address = "tubartek@gmail.com"; kontakt.businesstelephonenumber = "7272022"; kontakt.update(); kontakt = outlook.contacts.items.addnew(); kontakt.firstname = "Jacek"; kontakt.lastname = "Matulewski"; kontakt.email1address = "jacek@fizyka.umk.pl"; kontakt.mobiletelephonenumber = "7272021"; kontakt.update(); datagrid1.refresh(); Numery telefonów u yte w powy szym przyk adzie nie s przypadkowe rozpoznawane s przez emulator sieci komórkowej. Przypisane s do nich ró ne reakcje programu Cellular Emulator (zob. pole Preset Number na rysunku 8.1, lewy). Nast pnie uruchamiamy aplikacj i z menu Outlook wybieramy polecenie, które do listy kontaktów powinno doda trzy nowe pozycje. Mo emy to sprawdzi, korzystaj c z wbudowanego w Windows Mobile programu do obs ugi kontaktów (rysunek 8.4, lewy) lub z naszej aplikacji (rysunek 8.4, prawy). Metoda z listingu 8.1 dodaje do zbioru kontaktów trzy nowe. W ka dym z tych kontaktów wype niamy tylko kilka z wielu dost pnych pól: imi, nazwisko, numer telefonu komórkowego i adres e-mail. Te pola wykorzystamy w trakcie dalszej pracy nad projektem. Proponuj zapisa stan emulatora po dodaniu przyk adowych kontaktów przydadz si nam podczas kolejnych wicze. Edycja nowego kontaktu Platforma.NET Compact nie ma specjalnego okna dialogowego pozwalaj cego na tworzenie nowych kontaktów z wpisywanymi przez u ytkownika danymi. Z poziomu kodu mo emy jednak utworzy pusty kontakt, a nast pnie edytowa go, wywo uj c na rzecz reprezentuj cego go obiektu metod ShowDialog. Spowoduje to wy wietlenie okna z podsumowaniem kontaktu, które w przypadku pustego kontaktu zawiera jedynie

Rozdzia 8. Obs uga podstawowych funkcji telefonu i programu Outlook 217 Rysunek 8.4. Nowe kontakty Rysunek 8.5. Dodanie i edycja nowego kontaktu pozycj <Unnamed> (rysunek 8.5, lewy). Klikni cie tej pozycji lub polecenia Edit w menu spowoduje przywo anie edytora kontaktu widocznego na rysunku 8.5, prawy. Stwórzmy zatem w menu pozycj, której wybranie spowoduje wywo anie okna pozwalaj cego, cho w nie najbardziej elegancki sposób, na dodanie nowego kontaktu o parametrach ustalanych przez u ytkownika. My l jednak, e w asny formularz i kod podobny do tego z listingu 8.1 w profesjonalnych zastosowaniach s lepszym rozwi zaniem.

218 Programowanie aplikacji dla urz dze mobilnych z systemem Windows Mobile 1. Do menu Outlook dodaj pozycj Dodaj nowy kontakt (menuitem3). 2. Tworzymy domy ln metod zdarzeniow do nowej pozycji menu i umieszczamy w niej kod widoczny na listingu 8.2. Listing 8.2. Dodanie dowolnego kontaktu private void menuitem3_click(object sender, EventArgs e) Contact kontakt = new Contact(); string orgfileas = kontakt.fileas; kontakt.showdialog(); if (kontakt.fileas!= orgfileas) outlook.contacts.items.add(kontakt); Zgodnie z zapowiedzi w powy szej metodzie tworzymy nowy, pusty kontakt (instancja klasy Contact), a nast pnie wywo ujemy na jej rzecz metod ShowDialog, co powoduje wy wietlenie okna widocznego na rysunku 8.5, po lewej. Je li u ytkownik zmieni nazw kontaktu, zmieni si te zawarto pola edycyjnego Zapisz jako w oknie dialogowym (odpowiada mu pole FileAs obiektu kontakt). Jest ono domy lnie tworzone na podstawie imienia i nazwiska dopisywanej osoby, czyli pól FirstName i LastName obiektu reprezentuj cego kontakt. W edytorze kontaktu prezentowane s one razem w jednym polu o nazwie Name. Z poziomu kodu mo liwe jest równie wywo anie okna dialogowego pozwalaj cego na wyszukanie kontaktu w ksi ce kontaktów. Z tej mo liwo ci skorzystamy w dalszej cz ci rozdzia u, podczas opisywania funkcji zwi zanych z wysy aniem SMS-ów i e-maili. Inicjowanie po cze telefonicznych Aby zadzwoni na wybrany numer telefonu, wystarczy tylko jedna linia kodu! Dodajmy zatem do aplikacji przygotowanej w poprzednim wiczeniu metod, która zainicjuje po czenie po dwukrotnym klikni ciu wybranego kontaktu. Za funkcje zwi zane stricte z telefonem komórkowym odpowiadaj klasy z przestrzeni nazw Microsoft.WindowsMobile.Telephony, w szczególno ci klasa Phone. Podobnie jak klasy pozwalaj ce na obs ug programu Outlook Mobile, tak e te klasy zdefiniowane s w bibliotece DLL, któr trzeba doda do projektu. 1. W menu Project wybieramy Add Reference. Gdy pojawi si okno Add Reference, przechodzimy na zak adk.net, zaznaczamy bibliotek Microsoft.WindowsMobile.Telephony i klikamy przycisk OK. 2. Do zbioru deklaracji przestrzeni nazw na pocz tku pliku Form1.cs dodajemy: using Microsoft.WindowsMobile.Telephony;

Rozdzia 8. Obs uga podstawowych funkcji telefonu i programu Outlook 219 3. W g ównym menu okna, z prawej strony, umieszczamy podmenu o nazwie Telefon. W nim dodajemy polecenie Po cz (menuitem5). 4. Tworzymy domy ln metod zdarzeniow zwi zan ze zdarzeniem Click elementu Po cz i uzupe niamy j zgodnie z listingiem 8.3. Listing 8.3. Inicjacja po czenia telefonicznego private void menuitem5_click(object sender, EventArgs e) new Phone().Talk( outlook.contacts.items[datagrid1.currentcell.rownumber]. MobileTelephoneNumber); 5. Metod t mo emy równie zwi za ze zdarzeniem dwukrotnego klikni cia siatki. Argumentem metody Phone.Talk jest numer telefonu, z którym chcemy si po czy, zapisany w a cuchu (typ string). Efekt jej wywo ania widoczny jest na rysunku 8.6. Je eli w argumencie prze lemy pusty ci g znaków (np. gdy kontakt nie mia przypisanego telefonu komórkowego), po czenie nie zostanie zainicjowane i nie zostanie wy wietlony aden komunikat o b dzie. Oczywi cie metoda mo e uwzgl dnia tak sytuacj, kiedy próbujemy wykona po czenie z innymi telefonami, których numery zapisane s w danych kontaktu. Listing 8.4 prezentuje kod, w którym w przypadku braku telefonu komórkowego inicjowane jest po czenie z telefonem s u bowym, a dopiero gdy i tego nie ma, wy wietlany jest komunikat o b dzie. Rysunek 8.6. Wybieranie numeru po dwukrotnym klikni ciu pozycji w li cie kontaktów

220 Programowanie aplikacji dla urz dze mobilnych z systemem Windows Mobile Listing 8.4. Je eli kontakt nie ma telefonu komórkowego, program sprawdzi, czy nie ma zapisanych innych numerów private void menuitem5_click(object sender, EventArgs e) Contact kontakt=outlook.contacts.items[datagrid1.currentcell.rownumber]; string numertelefonu = kontakt.mobiletelephonenumber; if (numertelefonu == "") numertelefonu = kontakt.businesstelephonenumber; if (numertelefonu!= "") new Phone().Talk(numerTelefonu); else MessageBox.Show("Wybrany kontakt nie zawiera numeru telefonu komórkowego ani s u bowego"); Je eli korzystamy z emulatora, próba inicjowania po czenia telefonicznego, jak i sama rozmowa s ledzone przez emulator sieci komórkowej. Lista aktualnych po cze widoczna jest w polu Active Calls okna Cellular Emulator (rysunek 8.7). Wybrane po czenie mo emy przerwa, klikaj c przycisk Drop Call. Rysunek 8.7. Aktywne po czenie wychodz ce Wysy anie krótkich wiadomo ci tekstowych (SMS) Przygotujmy kolejn aplikacj, za pomoc której b dziemy mogli tworzy i wysy a wiadomo ci SMS. S to krótkie wiadomo ci tekstowe (do 160 znaków) przesy ane w sieciach komórkowych i odczytywane przez wszystkie wspó cze nie produkowane telefony komórkowe.

Rozdzia 8. Obs uga podstawowych funkcji telefonu i programu Outlook 221 Przygotowanie projektu aplikacji s u cej do wysy ania wiadomo ci SMS Rysunek 8.8. Projekt interfejsu 1. Do rozwi zania Kontakty dodajmy nowy projekt typu Device Application dla systemu Windows Mobile 6 Professional, korzystaj cy z platformy.net Compact Framework Version 3.5. Nazwijmy go SMS. 2. W menu Project wybieramy Add Reference, po czym na zak adce.net otwartego okna wskazujemy bibliotek Microsoft.WindowsMobile.PocketOutlook i klikamy OK. W taki sam sposób dodajemy równie bibliotek Microsoft.WindowsMobile.Forms. 3. Nowy projekt ustawiamy jako projekt startowy rozwi zania (menu Set as StartUp Project). 4. Do zbioru deklaracji przestrzeni nazw na pocz tku pliku Form1.cs dodajemy: using Microsoft.WindowsMobile.PocketOutlook; using Microsoft.WindowsMobile.Forms; 5. W widoku projektowania (zak adka Form1.cs [Design]) w palecie komponentów (podokno Toolbox) odnajdujemy pole edycyjne (TextBox) i umieszczamy na formie dwa takie komponenty zgodnie ze wzorem na rysunku 8.8. Zmie my ich nazwy (pole Name w podoknie w asno ci) na, odpowiednio, adresattextbox oraz teksttextbox. 6. Nast pnie w podoknie Properties ustawiamy w asno ci komponentu adresattextbox: w asno Enabled ustawiamy na False, ReadOnly na true, a zakotwiczenie (w asno Anchor) na Top,Left,Right, co spowoduje zachowanie sta ej odleg o ci pola edycyjnego od górnej i bocznych kraw dzi formy tak e podczas zmiany orientacji ekranu.

222 Programowanie aplikacji dla urz dze mobilnych z systemem Windows Mobile 7. W przypadku komponentu teksttextbox ustawiamy: w asno Multiline na True, ScrollBars na Both oraz zakotwiczenie Anchor na Top,Bottom,Left,Right, a nast pnie rozci gamy go na dost pnej powierzchni formy pod pierwszym polem edycyjnym (por. rysunek 8.8). 8. W podoknie Toolbox odnajdujemy komponent przycisku Button i umieszczamy go na formie. Zmieniamy jego nazw na kontaktybutton. W podoknie Properties w polu odpowiadaj cym tre ci etykiety (w asno Text) wpisujemy trzy kropki. Zakotwiczenie ustawiamy na Top,Right. W ten sposób komponent umieszczamy na górze formy, po prawej stronie komponentu adresattextbox. 9. Na formie umieszczamy jeszcze dwa komponenty Label i zmieniamy ich w asno Text na Do: oraz Wiadomo :. Ich po o enie zmieniamy zgodnie ze wzorem z rysunku 8.8. 10. Nast pnie tworzymy menu zgodnie ze wzorem widocznym na rysunku 8.8. Zmieniamy nazwy elementów menu odpowiednio na: wyslijmenuitem, opcjemenuitem, potwierdzenieodbiorumenuitem, zakonczmenuitem. W asno Enabled pozycji Wy lij (wyslijmenuitem) ustawiamy na false. Aplikacja b dzie dzia a a w ten sposób, e za pomoc przycisku kontaktybutton wywo- amy okno dialogowe wyboru kontaktu. Po wskazaniu kontaktu jego nazw i numer telefonu wy wietlimy w polu edycyjnym adresattextbox. Z kolei pole edycyjne wiadomosctextbox pozwoli na wpisanie tre ci wiadomo ci, któr mo na b dzie nast pnie wys a, klikaj c pozycj menu z etykiet Wy lij. B dziemy mie tak e mo liwo za dania potwierdzenia odbioru wiadomo ci, zaznaczaj c odpowiedni opcj w menu. Wybór adresata i wys anie wiadomo ci SMS Stwórzmy teraz metody realizuj ce funkcje poszczególnych pozycji menu: 1. W klasie formy Form1 definiujemy pole: string numertelefonuadresata; 2. Tworzymy metod zdarzeniow zwi zan ze zdarzeniem Click komponentu kontaktybutton, w której umieszczamy instrukcje z listingu 8.5. Listing 8.5. Wybór adresata wiadomo ci w ksi ce kontaktów private void kontaktybutton_click(object sender, EventArgs e) ChooseContactDialog wybierzkontakt = new ChooseContactDialog(); wybierzkontakt.requiredproperties = new ContactProperty[] ContactProperty.Sms; wybierzkontakt.title = "Wybierz adresata"; if (wybierzkontakt.showdialog() == DialogResult.OK) numertelefonuadresata = wybierzkontakt.selectedpropertyvalue; adresattextbox.text = wybierzkontakt.selectedcontactname + " <" + numertelefonuadresata + ">";

Rozdzia 8. Obs uga podstawowych funkcji telefonu i programu Outlook 223 wyslijmenuitem.enabled = true; 3. Nast pnie tworzymy metod zwi zan ze zdarzeniem Click pozycji menu Wy lij i uzupe niamy jej kod zgodnie z listingiem 8.6. Listing 8.6. Wysy anie wiadomo ci SMS private void wyslijmenuitem_click(object sender, EventArgs e) SmsMessage sms = new SmsMessage(numerTelefonuAdresata, teksttextbox.text); sms.requestdeliveryreport = potwierdzenieodbiorumenuitem.checked; try sms.send(); MessageBox.Show("Wiadomo zosta a wys ana!"); catch MessageBox.Show("Nie uda o si wys a wiadomo ci!"); return; 4. Jako ostatnie tworzymy dwie metody zwi zane ze zdarzeniami Click pozycji menu Potwierdzenie odbioru oraz Zako cz. Ich zawarto uzupe niamy zgodnie ze wzorem na listingu 8.7. Listing 8.7. Zmiana opcji potwierdzenia odbioru oraz zako czenie programu private void potwierdzenieodbiorumenuitem_click(object sender, EventArgs e) potwierdzenieodbiorumenuitem.checked =!potwierdzenieodbiorumenuitem.checked; private void zakonczmenuitem_click(object sender, EventArgs e) Close(); Pierwsza linia kodu zaprezentowanego w punkcie 2. (listing 8.5) tworzy okno dialogowe typu ChooseContactDialog pozwalaj ce na wybór kontaktu z listy kontaktów zapisanych w urz dzeniu przeno nym. Okno to pochodzi z przestrzeni nazw Microsoft. WindowsMobile.Forms, któr nale y doda do sekcji instrukcji using. Wy wietlamy przy tym tylko te kontakty, które umo liwiaj wysy anie wiadomo ci SMS. Nast pnie ustalamy tytu okna dialogowego i je przywo ujemy, wywo uj c metod ShowDialog. Je li, korzystaj c z okna dialogowego, u ytkownik wybra adresata, wy wietlamy jego dane w polu edycyjnym adresattextbox i odblokowujemy opcj Wy lij. W punkcie 3. przygotowali my metod wysy aj c SMS. Jak wida na listingu 8.6, tworzymy w tym celu obiekt typu SmsMessage (nale y do przestrzeni Microsoft.Windows