Windows Phone 8 SDK Servicii de localizare

Geolocația este un aspect crucial al dezvoltării mobile. Din fericire, găsirea locației utilizatorilor pe Windows Phone 8 este ușoară! Acest tutorial vă va arăta cum se face prin demonstrarea geolocator clasă.


Prezentare generală a tutorialului

Windows Phone SDK este o platformă de dezvoltare foarte puternică, care permite dezvoltatorilor să creeze aplicații excelente cu cadrul Silverlight. Actualizarea recentă a setului SDK la versiunea 8.0 (Windows Phone 8) aduce o serie de modificări care fac mai ușoară efectuarea unor activități generice. Unul dintre domeniile care au înregistrat o îmbunătățire în Windows Phone 8 este API Locație. În versiunile anterioare ale SDK pentru telefonul mobil Windows, obținerea unei locații curente a utilizatorului a fost puțin cam neplăcută, dar tehnica curentă pentru a face acest lucru a fost lustruită și a devenit puțin mai directă.

Noua tehnică utilizează apelul de metodă ASYNC al Microsoft, care îmbunătățește performanța aplicațiilor în timp ce obține accesul la locația unui utilizator. Să ne scufundăm și să aruncăm o privire asupra acestui nou mod de a accesa locația curentă pe Windows Phone 8.


Cerințe preliminare

Pentru a încerca acest tutorial, voi presupune că aveți o înțelegere de bază a platformei Windows Phone. De asemenea, aș dori să cred că aveți o înțelegere de bază despre XAML și C #, deoarece acestea sunt limba în care vom scrie cererea noastră. De asemenea, va trebui să aveți Visual Studio 2012 sau o versiune ulterioară cu setul de instrumente Windows Phone 8 SDK și un emulator de lucru Windows Phone instalat pe mașina dvs. locală. Alternativ, puteți utiliza un dispozitiv Windows Phone în locul emulatorului.


1. Creați un proiect nou

Deschideți Visual Studio și creați un nou proiect Windows Phone cu Fișier -> Nou -> Proiect.

În panoul din stânga ferestrei noului proiect asigurați-vă că selectați opțiunea Windows Phone din categoria subclasa Visual C #. Alegeți Windows Phone App în fereastra principală și denumiți proiectul tot ce doriți și apoi faceți clic pe OK când ați terminat.



2. Configurați interfața de utilizare

Acum, când am creat aplicația noastră, ne putem concentra pe obiectivul nostru principal - vizarea locației curente a utilizatorului și afișarea acestuia pe ecran. În termeni simpli, aplicația noastră va avea doar 2 elemente afișate, un Button și un TextBlock. Butonul va fi ceea ce am face să faceți clic pentru a spune aplicației noastre să apucă locația curentă a utilizatorului, iar TextBlock ar afișa coordonatele geografice ale locației noastre curente.

Să mergem mai departe și să creăm interfața noastră simplă de utilizare. Utilizați Visual Studio Toolbox pentru a glisa și fixa un Buton și un TextBlock oriunde pe ecran. În acest moment, aplicația dvs. trebuie să aibă un bloc de text și un buton ca parte a interfeței utilizatorului.

Ar trebui să arate similar cu aceasta:


Vă recomandăm cu insistență să modificați proprietatea de nume a butonului dvs. și a textului pentru a fi în concordanță cu acest tutorial. Setați numele butonului pentru a fi MyButton și a Blocului de text pentru a fi MyTextBlock din fereastra cu codul XAML.

 

3. Adăugați Geolocation Logic

În acest moment, avem pregătirea pentru UI și putem continua să scriem logica aplicației noastre. Faceți dublu clic pe butonul din vizualizarea proiectantului, iar Visual Studio vă va duce automat la vizualizarea de cod cu o metodă deja creată.

 private void MyButton_Click (expeditor obiect, RoutedEventArgs e) 

Această metodă generată este o metodă delegată sau apelată pentru evenimentul de clic al butonului nostru. Aceasta înseamnă că codul din această metodă va fi executat numai când se face clic pe butonul nostru. Pentru a ne alinia cu scopul nostru, am pune codul care face locatia noastra curenta in cadrul acestei metode, deoarece dorim ca locatia noastra curenta sa fie determinata ori de cate ori apasam Buttonul nostru. Pentru a realiza acest lucru, vom folosi clasele GeoLocator și GeoPosition.

Clasa GeoLocator ajută la obținerea locației noastre curente și face toată interacțiunea cu GPS / Rețeaua și returnează un obiect GeoPosition. Pe de altă parte, clasa GeoPosition ne oferă o modalitate de a consuma datele returnate pe care GeoLocator le întoarce. Practic, gândiți-vă la GeoLocator ca instrument de solicitare și obiect GeoPosition ca instrument de răspuns. Aceste clase oferă, de asemenea, loc pentru personalizarea cererilor și răspunsurilor noastre. De exemplu, putem spune GeoLocator cât de precis (până la cel mai apropiat metru) dorim ca locația noastră actuală să fie și cât de repede dorim ca locația noastră curentă să fie interogată.

Am scris o metodă care ajută la obținerea locației noastre actuale și o voi explica detaliat puțin mai târziu. Pentru moment, adăugați următoarea referință de spațiu de nume la: Windows.Devices.Geolocation;. Apoi, copiați fragmentul de cod de mai jos și inserați-l în:

 private async void GetCurrentLocation ()  Geolocator locationFinder = nou Geolocator   DesiredAccuracyInMeters = 50,  DesiredAccuracy = PositionAccuracy.Default ; încercați Geoposition currentLocation = așteptați locațiaFinder.GetGeopositionAsync (maximumAge: TimeSpan.FromSeconds (120), timeout: TimeSpan.FromSeconds (10)); Stânga longitudinală = locația curentă.Coordonate.Lungitudinea.ToString ("0.00"); String latitude = currentLocation.Coordinate.Latitude.ToString ("0.00"); MyTextBlock.Text = "Long:" + longitudine + "Lat:" + latitudine;  catch (UnauthorizedAccessException)   MessageBox.Show ("Și excepție Occured");  

Această metodă face toată munca pentru noi și chiar merge mai departe pentru a seta proprietatea TextBlock pentru noi. Să examinăm îndeaproape ceea ce face metoda.

În primul rând, vom crea un nou obiect GeoLocator numit locationFinder. Apoi, în primul rând, îi spunem cât de exacte în metri vrem ca locația noastră să fie și stabilim cât de exacte vrem rezultatul.

 Geolocator locationFinder = Geolocator nou  DesiredAccuracyInMeters = 50, DesiredAccuracy = PositionAccuracy.Default ;

Apoi, instanțiăm un obiect GeoPosition numit locatia curenta în cadrul unui bloc try / catch în cazul unor excepții. Apoi îl atribuim obiectului GeoPosition returnat pe care obiectul GeoLocator îl întoarce folosind GetGeoPostionAsync metodă.

 Geoposition currentLocation = așteaptă locațiaFinder.GetGeopositionAsync (maximumAge: TimeSpan.FromSeconds (120), timeout: TimeSpan.FromSeconds (10)); Deritudinea șirului = locația curentă.Coordonate.Lungitudinea.ToString ("0.00"); String latitude = currentLocation.Coordinate.Latitude.ToString ("0.00");

În cele din urmă, obținem longitudinea și latitudinea returnate și le-am setat pe TextBlock să afișeze aceste valori.

 MyTextBlock.Text = "Lon:" + longitudine + "Lat:" + latitudine;

Este atât de simplu! Există încă câteva lucruri de făcut înainte de a testa cererea noastră. În primul rând, trebuie să sunăm pe noi GetCurrentLocation în cadrul metodei delegate a butonului nostru care a fost creat inițial pentru noi.

 private void MyButton_Click (expeditor obiect, RoutedEventArgs e) GetCurrentLocation (); 

Aceasta înseamnă că ori de câte ori faceți clic pe butonul nostru, GetCurrentLocation Metoda se va executa și locația noastră actuală va fi preluată pentru noi.

În cele din urmă, trebuie să solicităm permisiunea de a utiliza API-ul de locație pe Windows Phone. Facem acest lucru prin editarea fișierului nostru manifest. În exploratorul de soluții, căutați o intrare intitulată Proprietăți și schimbați-l pentru a vedea substraturile sale. Un nume de fișier al subentrilor ar trebui să fie WMAppManifest.xml. Faceți dublu clic pe acesta și veți vedea o interfață grafică cu patru file, una dintre acestea fiind intitulată Capabilități. Selectați această filă și ar trebui să vedeți ceva de genul:


Acum, verificați opțiunea ID_CAP_LOCATION dacă nu este bifată și salvați proiectul (CTRL + S). Odată ce ați terminat, puteți închide fereastra WMAppManifest.xml. Ceea ce am făcut acum este explicit solicitat permisiunea de a permite aplicației noastre să utilizeze instrumentul Windows Phone / Locație Windows Phone. Odată ce am făcut-o, putem rula aplicația noastră pentru prima dată!

Dacă utilizați un dispozitiv fizic pentru dispozitive de testare, asigurați-vă că aveți locația activată în setare și că aveți o conexiune la internet validă printr-o rețea Wi-Fi sau mobilă. Acest lucru este foarte important și obligatoriu pentru cererea noastră de a lucra. Dacă utilizați un emulator pentru Windows Phone, asigurați-vă că locația este activată și pe Emulator și că conexiunea la Internet este una funcțională.

Pentru a lansa aplicația, căutați butonul Green Play din meniul vizual al studioului și selectați opțiunea Emulator sau Dispozitiv dacă utilizați un receptor. Asigurați-vă că configurația soluției din partea dreaptă a butonului este setată la Debug.



4. Testați aplicația

Faceți clic pe butonul Verde pentru a lansa aplicația. Aplicația ar trebui să lanseze și să afișeze pagina la care ne-a atras interfața utilizator. Acum, faceți clic pe butonul pentru a comanda aplicația pentru a obține coordonatele noastre actuale de locație și ar trebui să prezentați un rezultat care arată astfel:



Concluzie

Până acum ați observat că am reușit să obținem ceea ce ne-am propus să realizăm și locația noastră actuală este afișată pentru noi. Puteți vedea cât de ușor a fost acest lucru cu o astfel de programare minimală! Aceasta este o operație foarte simplă dar importantă în dezvoltarea Windows Phone Simțiți-vă liber să jucați cu setările personalizate ale claselor GeoLocator și GeoPosition. Vă mulțumim pentru lectură!

Cod