BETA
Aby się zalogować, najpiew wybierz portal.
Aby się zarejestrować, najpiew wybierz portal.
Podaj słowa kluczowe
Słowa kluczowe muszą mieć co najmniej 3 sąsiadujące znaki alfanumeryczne
Pole zawiera niedozwolone znaki

Baza wiedzy











Nowe możliwości programistyczne w Windows Mobile 5.0

18-02-2006 16:45 | User 81359
Wprowadzenie w świat programowania aplikacji mobilnych na urządzenia z systemem Windows Mobile 5.0. Usprawnienia nowego systemu poprawiające tworzenie oprogramowania oraz integracja z Visual Studio 2005.

Nowe możliwości programistyczne w Windows Mobile 5.0

Windows Mobile 5.0 zapewnia programistom nowe interfejsy programistyczne, które wspomagają zarządzanie multimediami, rysowanie 2D i 3D, dostarczają nowych możliwości komunikacyjnych oraz ułatwiają obsługę elementów sprzętowych takich jak kamera czy też system nawigacji satelitarnej. Dzięki wielu pomocnym interfejsom, programista może się skupić na konkretnych celach aplikacji, a nie sposobach ich realizacji.

Cechy Windows Mobile 5.0 wpływające na większą wydajność programistów:

  1. Nowe interfejsy API dostarczają wiele standardowych rozwiązań, takich jak zarządzanie obrazami, kontaktami, GPS-em;
  2. Większa przenośność kodu i aplikacji pomiędzy urządzeniami Pocket PC a Smartphone;
  3. Nowe API do śledzenia aktywności systemu takich jak: zmiany w połączeniu z siecią, odbiór wiadomości SMS lub nadejście połączenia telefonicznego;
  4. Visual Studio przyspiesza tworzenie aplikacji dzięki rozbudowanym narzędziom do testowania aplikacji w zależności od orientacji ekranu, rozdzielczości czy też rodzaju urządzenia.

 
Rozbudowane zarządzanie multimediami:

  1. API do obsługi wbudowanego aparatu;
  2. Windows Media Player 10 Mobile pozwala na łatwe implementowanie możliwości odtwarzacza multimedialnego w tworzoną aplikację;
  3. Obsługa Direct3D dostarcza możliwości tworzenia aplikacji trójwymiarowych;
  4. Obsługa DirectDraw zapewnia większą kontrolę i elastyczność przy tworzeniu wydajnych aplikacji 2D.

 
Windows Mobile 5.0 posiada zainstalowane domyślnie w pamięci ROM środowisko .NET Compact Framework 1.0 wraz z SP3. Aby móc w pełni korzystać z możliwości systemu Windows Mobile 5.0 należy zainstalować najnowszą wersję .NET Compact Framework.

Windows Mobile 5.0 dostarcza programistom wielu nowych interfejsów API. Można powiedzieć, iż ich głównym celem jest poprawa efektywności i wydajności pracy programistów.

  1. Możemy wyróżnić trzy rodzaje API:Nowo dodane API kierowane do programistów tworzących aplikacje w kodzie natywnym;
  2. Istniejące wcześniej natywne API, ale teraz dodatkowo dostępne dla programistów kodu zarządzanego;
  3. Nowo dodane API dostępne zarówno dla programistów kodu natywnego jak i zarządzanego.

 
Tak więc w Windows Mobile 5.0 mamy następujące nowe API:

  1. Direct3D Mobile – przestrzeń nazw Microsoft.WindowsMobile.DirectX.Direct3D;
  2. DirectDraw i DirectShow;
  3. Global Positioning System (GPS) – dostępne dla kodu natywnego pod nazwą GPS Intemediate Driver (GPSID);
  4. Unikalna identyfikacja urządzenia (metoda GetDeviceUniqueID);
  5. Zarządzanie Prawami Cyfrowymi (File-based Digital Rights Management);
  6. Zarządzanie oprogramowaniem ActiveSync (dla kodu natywnego funkcje ActiveSyncStart i ActiveSyncStop);
  7. Telefonowanie – programista może zarządzać podstawowymi funkcjami telefonu wykorzystując klasę Microsoft.WindowsMobile.Telephony.Phone i metodę Talk. Zobaczmy jak prosto jest z poziomu kodu aplikacji nawiązać połączenie z jakimś numerem:

 

[Kod C#]

     using Microsoft.WindowsMobile.Telephony;

//Tworzymy nowy obiekt klasy Phone

Phone telefon = new Phone();

// A teraz nawiązujemy połączenie z numerem alarmowym telefon.Talk("112");

// Możemy też nawiązać połączenie po uprzednim

// potwierdzeniu przez użytkownika tegoż numeru telefon.Talk("112", tru


        8. Outlook Mobile – dostęp do funkcjonalności naszego pocketowego klienta pocztowego (włączając w to zarządzanie kalendarzem, zadaniami i notatkami) otrzymujemy poprzez przestrzeń nazw Microsoft.WindowsMobile.PocketOutlook, w której wyróżniamy kilka podstawowych klas: OutlookSession, Appointment, Task oraz Contact.

Dla przykładu zobaczmy jak łatwo można dodać do naszego kalendarza informację o nowym spotkaniu:
 

[Kod C#]

     using Microsoft.WindowsMobile.PocketOutlook;

// Dodajemy nowe spotkanie I ustawiamy mu szczegóły

Appointment spotkanie = new Appointment();

 
// Ustawiamy temat naszego spotkania

spotkanie.Subject = "Nowe spotkanie testowe";

 
// Ustawiamy początek spotkania na 21 luty 2006 o
// 18:30

spotkanie.Start = new DateTime(2006, 02, 21, 18, 30, 00);

// Długość trwania spotkania ustalamy na 1 godz. spotkanie.Duration = new TimeSpan(01, 00, 00);

// Jako przypomnienie ustawiamy wibrację spotkanie.ReminderVibrate = true;

// Tworzymy sesję Outlooka i dodajemy nasze nowe spotkanie using (OutlookSession sesja = new OutlookSession())

{

   sesja.Appointments.Items.Add(spotkanie);

            }

 
W naszym kalendarzu pod datą 21.02.2006 pojawia się następujący wpis:

 
1.bmp


9. Przesyłanie wiadomości – dwie przestrzenie nazw: Microsoft.WindowsMobile.PocketOutlook.EmailAccount (do zarządzania mailami) iMicrosoft.WindowsMobile.PocketOutlook.SmsAccount (do zarządzania krótkimi wiadomościami tekstowymi SMS). Klasa EmailAccount dostarcza deweloperom pełnej funkcjonalności do obsługi poczty elektronicznej, włącznie z obsługą załączników. Przyjrzyjmy się krótkiemu przykładowi, który demonstruje jak prosto programista może wysłać wiadomość e-mail:

[Kod C#]

using Microsoft.WindowsMobile.PocketOutlook;

//tworzymy nową wiadomość email

EmailMessage wiadomosc = new EmailMessage();


//dodajemy adresata naszej wiadomości

wiadomosc.To.Add(new Recipient("aaa@aaa.aaa"));


//ustawiamy temat wiadomości

wiadomosc.Subject = "temat";

 

//wpisujemy treść wiadomości

wiadomosc.BodyText = "Przykładowy email z jakimś załącznikiem";

 

//dodajemy załącznik do naszego email-a

wiadomosc.Attachments.Add(new Attachment(@"\pim"));

 

//wysyłamy wiadomość przy użyciu domyślnego konta

//pocztowego

using (OutlookSession sesja = new OutlookSession())

{

   sesja.EmailAccounts[0].Send(wiadomosc);

            }

 
W podobny sposób programista może wysyłać i odbierać wiadomości SMS:

 

[Kod C#]

using Microsoft.WindowsMobile.PocketOutlook;

// Tworzymy nowy SMS

SmsMessage wiadomosc = new SmsMessage("888888888", "wiadomosc sms");

 
//Żądamy potwierdzenia dostarczenia naszej wiadomości SMS

wiadomosc.RequestDeliveryReport = true;

 
// I w końcu wysyłamy wiadomość

           wiadomosc.Send();

Teraz przyjrzyjmy się nowym interfejsom API w systemie Windows Mobile 5.0, które są dostępne zarówno dla programistów kodu natywnego jak i zarządzanego:

  1. API do zarządzania stanami urządzenia, aplikacji i systemu (State and Notification Broker) – pozwala w łatwy sposób zarejestrować aplikację do odbioru ściśle określonych informacji. Przykładowe informacje dostępne poprzez to API: status synchronizacji urządzenia, aktualny poziom baterii, czy zestaw słuchawkowy jest podłączony, tytuł piosenki aktualnie odtwarzanej w Windows Media Player, itd. Informacje o stanie systemu są przechowywane w rejestrze w kluczu tylko do odczytu: HKEY_CURRENT_USER\System\State lub HKEY_LOCAL_MACHINE\System\State. Z kolei aplikacje mogą zapisywać swój stan w kluczach: HKEY_CURRENT_USER\Software\State i HKEY_LOCAL_MACHINE\Software\State.
  2. Okno dialogowe do wyboru obrazu – dla programistów kodu natywnego dostępne z poziomu wywołania funkcji GetFileNameEx , a dla kodu zarządzanego mamy klasę Microsoft.WindowsMobile.Forms.SelectPictureDialog.

Wykorzystanie powyższej klasy w aplikacji powoduje wyświetlenie następującego okienka, które pozwala nam na wybór jakiegoś zdjęcia:

 2.png

 
Wywołanie tego okienka sprowadza się do dwóch linii kodu:
          

[Kod C#]

SelectPictureDialog spd = new SelectPictureDialog();
spd.ShowDialog();

3. Obsługa kamery – w celu obsługi kamery programista ma dostępne specjalne okno dialogowe. Okno to wykonuje za programistę kompletną kontrolę nad procesem wykonywania zdjęć lub klipów wideo. Dostęp dla deweloperów natywnego kodu poprzez funkcję SHCameraCapture, a dla programistów kodu zarządzanego poprzez klasę Microsoft.WindowsMobile.Forms.CameraCaptureDialog.3. 

Wykorzystanie powyższej klasy powoduje wyświetlenie standardowego okienka, jakie oferuje nasze urządzenie do wykonywania zdjęć i nagrywania sekwencji wideo.


                3.png


4. Okno dialogowe wyboru kontaktu – programista w łatwy sposób tworzy okno służące do wyboru kontaktu z naszej książki kontaktów, takie samo jak oferuje Pocket Outlook. Mamy w nim dostępne opcje filtrowania, a także wyboru odpowiedniego szczegółu dla danego kontaktu, np. numer telefonu albo adres e-mail. To okienko można również wykorzystywać do dodawania nowych kontaktów. Powyższe okno dialogowe jest dostępne dla programistów kodu natywnego poprzez funkcję ChooseContact, a dla kodu zarządzanego poprzez klasę ChooseContactDialog.

Zobaczmy dwa krótkie przykłady użycia tego okna dialogowego:

 

[Kod C++]

#include <pimstore.h>

HRESULT hr = E_FAIL;

CHOOSECONTACT cc = {0};

cc.cbSize = sizeof (cc);

// Wyłączamy możliwość dodawania nowego kontaktu

cc.dwFlags = CCF_RETURNCONTACTNAME | CCF_HIDENEW;

 

// Wyświetlamy nasze okno wyboru kontaktu

hr = ChooseContact(&cc);

 

// Wybrany kontakt wyświetlamy w MessageBox

MessageBox(NULL, cc.bstrContactName,

           TEXT("Wybrany kontakt"), MB_OK);

// Czyszczenie pamięci

           SysFreeString(cc.bstrContactName);

            A teraz to samo w C#:

 

[Kod C#]

using System.Windows.Forms;

using Microsoft.WindowsMobile.PocketOutlook;

using Microsoft.WindowsMobile.Forms;

ChooseContactDialog oknoKontaktow = new ChooseContactDialog();

 
//
Wyłączamy możliwość dodawania nowego kontaktu

oknoKontaktow.HideNew = true;

oknoKontaktow.ShowDialog();

     // Wyświetl wybrany kontakt      
     MessageBox.Show(oknoKontaktow.SelectedContactName,
                     "Wybrany kontakt");

           
            Zastosowanie powyższego kodu, zarówno dla kodu natywnego jak i zarządzanego, powoduje    
            wyświetlenie takiego okienka:

 
41.PNG

Jak widzimy opcja dodawania nowych kontaktów nie jest dostępna, ponieważ jawnie ją wyłączyliśmy w naszym kodzie, możemy jedynie wybierać spośród dostępnych wpisów.

5.    API do przesyłanie wiadomości – umożliwia łatwy dostęp do funkcjonalności związanych z przesyłaniem komunikatów. Najważniejsze z nich to: wyświetlanie dostępnych wiadomości email, obsługa wiadomości SMS i formularzy do tworzenia nowych wiadomości.

            Podstawowe funkcje dostępne dla kodu natywnego:
 

Funkcja

Opis

MailComposeMessage

Formularz do pisania nowych wiadomości z możliwością dodawania załączników.

MailDisplayMessage

Wyświetla treść istniejącej wiadomości w standardowym formularzu wiadomości.

MailSwitchToAccount

Zmiana aktywnego konta mailowego.

MailSwitchToFolder

Zmiana aktywnego folderu

MailSyncMessages

Synchronizacja wybranego konta z serwerem.

Podstawowe funkcje dostępne dla kodu zarządzanego:

Metoda

Opis

MessagingApplication.DisplayComposeForm

Formularz do pisania nowych wiadomości z możliwością dodawania załączników.

MessagingApplication.DisplayMessage

Wyświetla treść istniejącej wiadomości.

MessagingApplication.SwitchToAccount

Zmiana aktywnego konta mailowego.

MessagingApplication.Synchronize

Synchronizacja wybranego konta z serwerem.

 
 

Visual Studio 2005 i Windows Mobile 5.0

 
Visual Studio 2005 stanowi środowisko zalecane do tworzenia aplikacji na system Windows Mobile 5.0, ale aplikacje stworzone w wersji 2003 nadal będą poprawnie działały w nowym mobilnym systemie Microsoftu.

Visual Studio 2005 jest konieczne, gdy programista chce korzystać z możliwości debugowania bezpośrednio w systemie Windows Mobile 5.0. Ponadto Visual Studio stanowi zintegrowane środowisko do tworzenia aplikacji zarówno na komputery osobiste jak i przenośne. Umożliwia tworzenie aplikacji w kodzie natywnym systemu, jak również w kodzie zarządzanym.

Visual Studio 2005 oferuje środowisko programistyczne bardzo podobne do tego oferowanego przez swojego poprzednika, dlatego też przejście na nową wersję jest dla programistów bardzo płynne i pozwala na korzystanie z dotychczas zdobytych umiejętności.

Pomimo wielu podobieństw, Visual Studio 2005 posiada również kilka usprawnień istotnie wpływających na efektywność pracy programistów. Najważniejszym z nich jest integracja możliwości dwóch narzędzi: eMbedded Visual C++ i Visual Studio .NET 2003 w jedno środowisko. To pierwsze narzędzie było wykorzystywane przez programistów kodu natywnego.

W Visual Studio 2005 możemy tworzyć solucje zawierające projekty zarówno tworzone w kodzie natywnym jak i zarządzanym.
 

Ulepszony projektant interfejsów użytkownika

 
Jeszcze nie tak dawno urządzenia typu Pocket PC posiadały ekran o określonej rozdzielczości, o jednej orientacji ekranu. Dzisiejsze urządzenia z systemem Windows Mobile 5.0 są oferowane z ekranami o wielu rozdzielczościach: 240 x 320, 240 x 240, 480 x 640, oraz 480 x 480. Również orientacja ekranu nie jest już jednakowa dla wszystkich urządzeń. Możemy się spotkać z pionowym lub poziomym ułożeniem ekranu, a nawet z takim gdy ekran zmienia dynamicznie swoją orientacji w zależności od tego czy klawiatura jest wysunięta czy nie. Dlatego w Visual Studio 2005 wprowadzono kilka usprawnień, aby twórcy aplikacji mogli łatwo tworzyć i testować swoje aplikacje w zależności od różnych parametrów.

Projektant graficznego interfejsu użytkownika (GUI) w Visual Studio jest typowym edytorem typu WYSIWYG („what sou see is what sou get”). Pozwala na dostosowywanie naszych okienek do dowolnego rozmiaru i orientacji.

 
A zatem projektując interfejs graficzny naszej aplikacji możemy go oglądać zarówno w orientacji pionowej:

5.PNG

 
Jak i poziomej:

 
6.PNG

 

Aby nasza aplikacja była odporna na zmianę orientacji ekranu, programista ma możliwość przypisywania poszczególnych kontrolek do krawędzi okna i określenia w jakiej odległości ma się znajdować od tej krawędzi. Do danej krawędzi możemy przypisywać wiele różnych kontrolek. Dzięki temu po zmianie orientacji ekranu, nasze kontrolki automatycznie ustawiają się w odpowiedniej pozycji w stosunku do krawędzi odniesienia.

 
Emulatory

 
Kluczowym elementem tworzenia oprogramowania na urządzenia przenośne jest możliwość testowania na emulatorach. Visual Studio oferuje większą liczbę emulatorów z większymi możliwościami niż Visual Studio .NET 2003.

True ARM Emulator – zapewnia bardzo dokładne i kompletne testy, ponieważ operuje na identycznych instrukcjach jak nasz komputer kieszonkowy, posiada ten sam model pamięci i używa tych samych sterowników co nasze urządzenie. Posiada też istotną zaletę dla programistów kodu natywnego, gdyż korzysta z takich samych skompilowanych plików jak urządzenie. Już nie trzeba kompilować aplikacji oddzielnie dla emulatora i dla urządzenia.

Wsparcie dla oprogramowania ActiveSync – nasz emulator możemy łączyć z komputerem stacjonarnym za pośrednictwem programu ActiveSync. ActiveSync wykrywa nasz emulator tak samo jak prawdziwe urządzenie, które umożliwia synchronizację e-maili, kalendarza, kontaktów i zadań.

Obsługa udostępnionych katalogów – nasz emulator może widzieć dowolny katalog w naszym komputerze jako kartę SD w emulatorze. Dzięki temu możemy uzyskać łatwy dostęp z emulatora do zawartości dysku naszego komputera.

Menedżer emulatorów – stanowi centrum zarządzania wszystkimi dostępnymi emulatorami. Posiada on kilka istotnych funkcji, które znacznie przyspieszają proces testowania, np. reset emulatora, jego zamknięcie czy też nawiązanie połączenia.

 
7.PNG

 

Windows Mobile 5.0 SDK

Windows Mobile 5.0 SDK pozwala na integrację narzędzi do tworzenia oprogramowania na system Windows Mobile 5.0 z Visual Studio 2005. Zawiera w sobie potrzebne emulatory, pliki pomocy, pliki nagłówkowe i biblioteki.

Warto zauważyć, że w urządzeniach wyposażonych w system Windows Mobile 5.0 nie jest domyślne zainstalowany .NET Compact Framework 2.0. Jeśli chcemy z niego korzystać to musimy go sami, we własnym zakresie doinstalować. Domyślnie w pamięci ROM umieszczony jest .NET Compact Framework 1.0 SP3.


Podsumowanie

Windows Mobile 5.0 poprzez wprowadzenie dużego zestawu nowych interfejsów API oraz integrację ze środowiskiem Visual Studio 2005 znacznie przyspiesza tworzenie oprogramowania na urządzenia działające pod kontrolą nowego systemu mobilnego Microsoftu.

 

Bibliografia:

http://msdn.microsoft.com

Windows Mobile 5.0 Developer Resource Kit

Komentarze 0

pkt.

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.