periodic and distance based tracking desired accuracy in meters single location request caching and...
TRANSCRIPT
![Page 1: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/1.jpg)
Windows Phone 8 Maps and Location Services
Adina TrufinescuProgram Manager Windows Phone Developer Platform
![Page 2: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/2.jpg)
Agenda
Location Service APIs
Map Control and Services
Location Tracking in Background
Fast Resume
![Page 3: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/3.jpg)
Location Service API
![Page 4: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/4.jpg)
Periodic and distance based trackingDesired accuracy in metersSingle location requestCaching and timeoutPosition source
Location for Windows Phone 8
.Net APIs
Windows RuntimeAPIs
Track location changesDesired accuracy Movement thresholdPositionChangedStatusChangedStart & Stop
A-GPS
Wi-fi
Cell
![Page 5: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/5.jpg)
Location Trackingprivate Geolocator trackingGeolocator;private TypedEventHandler<Geolocator, PositionChangedEventArgs> positionChangedHandler; public void StartTracking(){ trackingGeolocator = new Geolocator(); trackingGeolocator.MovementThreshold = 100; // or trackingGeolocator.ReportInterval = (uint)TimeSpan.FromSeconds(30).TotalMilliseconds;
positionChangedHandler = (geolocator, eventArgs) => {}; trackingGeolocator.PositionChanged += positionChangedHandler;}public void StopTracking(){ trackingGeolocator.PositionChanged -= positionChangedHandler;}
![Page 6: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/6.jpg)
Single Location Request
public async Task<Geocoordinate> GetSinglePositionAsync(){ Geolocator geolocator = new Geolocator(); geolocator.DesiredAccuracyInMeters = 10;
Geoposition geoposition = await geolocator.GetGeopositionAsync(TimeSpan.FromMinutes(1), TimeSpan.FromSeconds(30));
return geoposition.Coordinate;}
![Page 7: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/7.jpg)
Tips for Location Apps
Use single location request when you can
Leverage caching for faster results
Find the right tradeoff between accuracy and timeout
Is wifi on?
![Page 8: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/8.jpg)
Map Control and Services
![Page 9: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/9.jpg)
Windows Phone 8 Map Control
Nokia Mapping Data110+ Countries, vector maps, 3D landmarks, new map modes
Offline MapsDownloadable by users, MapsDownloader tasks expose download and update to developers
Map ControlSmooth interactions, lag-less overlays, rotation, pitch
Route DisplayEasy to display Route calculated via Maps Services
![Page 10: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/10.jpg)
Windows Phone Maps Services
Geocoding Latitude,Longitude to Address
Reverse Geocoding Address to Latitude,Longitude
RoutingRouteQuery, Route, RouteLeg, RouteManeuver
![Page 11: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/11.jpg)
Part of Windows Phone ToolkitMapsUserControlPushPinToGeoCoordinate
Windows Phone Map and Services APIMap Control &ServiceAPIs
Map ToolkitExtensions
ID_CAP_MAP and ID_CAP_LOCATION
Developer Token assigned through Windows Phone Developer Center
.Net
![Page 12: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/12.jpg)
Map Control and Services Demo
Mike O’MalleyProgram Manager
![Page 13: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/13.jpg)
Windows Phone 7.x Maps API
Deprecated for Windows Phone 8 AppsBing Maps ControlBing Maps Task
Continue to use for 7.x apps
![Page 14: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/14.jpg)
Map Control and Services Takeaway
Map Control and Maps Services APIs powered by Nokia
Map Extensions Toolkit
Users can manage offline maps
Bing Map control is deprecated for 8.0
![Page 15: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/15.jpg)
Location Tracking in Background
![Page 16: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/16.jpg)
Location Tracking in BackgroundApp manifest:<defaultTask Name="_default" NavigationPage="MainPage.xaml" > <BackgroundExecution> <ExecutionType Name="LocationTracking" /> </BackgroundExecution ></defaultTask>
Actively listen for location change events
16
![Page 17: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/17.jpg)
Background Execution Constraints
XAML apps only
A single Location Tracking App runs in the background
App runs with limited access to resources
17
![Page 18: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/18.jpg)
Resource ManagementCPU allocation is capped at 10%App has access to• Location• Audio\Speech• Network• Storage• Sensors
No access to Camera, MicrophoneShellToast and ShellTile.Update
![Page 19: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/19.jpg)
User Awareness and ControlID_CAP_LOCATION
Users can close the running app
Users can disable background functionality per app
![Page 20: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/20.jpg)
DeactivationApp runs in the background until:• App stops tracking location• User disables Location Services• 4 hours without bringing the app in the foreground• Battery Saver ON• Another Location Tracking app moves to background• Low memory
DeactivationReason providedNotify the user!
![Page 21: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/21.jpg)
Location Tracking in Background Demo
![Page 22: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/22.jpg)
App Lifecycle Events
PhoneApplicationServiceLaunchingDeactivated
RunningInBackgroundActivatedClosed
![Page 23: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/23.jpg)
Application Lifecycle
running
deactivated
suspended
activated
tombstoned
Activ
ated
deactivated
Deactivated
![Page 24: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/24.jpg)
Application Lifecycle for Location Tracking
running
running in background
suspended
activated
tombstoned
Activ
ated
RunningInB
g
deactivated
![Page 25: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/25.jpg)
Application Lifecycle – Launching&Closing
Not Running ClosingRunningLaunchin
g
Running in Background
Launching
Launching
Closing
![Page 26: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/26.jpg)
Application Lifecycle – Launching&Closing
Not Running ClosingRunningLaunchin
g
Running in Background
Launching
Launching
Closing
RunningInBg
Closing
![Page 27: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/27.jpg)
Tips for Running in Background Use sound and toasts wisely
Inform the user when the app was deactivated
Stop active timers and animations
Stop tracking location when done
Optimize for Fast Resume
![Page 28: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/28.jpg)
What is Fast Resume?
![Page 29: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/29.jpg)
Fast Resume for Windows Phone 8 Apps“Replace” is the default activation policyOpt-in to “Resume" via manifest setting
<defaultTask Name ="_default" NavigationPage="MainPage.xaml" ActivationPolicy="Resume"/>
Apps are still suspended or tombstoned
![Page 30: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/30.jpg)
Fast Resume UXResume previous experience for Primary tilewhen previously launched via Primary tile
Start fresh for Deep Linkswhen previously launched via Primary tile or a different Deep Link
Don’t block OnBackKeyPressthis is how users close your app
30
![Page 31: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/31.jpg)
Backstack – Do nothing
![Page 32: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/32.jpg)
Backstack – Clear page stack
![Page 33: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/33.jpg)
Reset: Clear the page stack
Backstack – Clear page stack
![Page 34: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/34.jpg)
Backstack - Cancel navigation
![Page 35: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/35.jpg)
Reset: Cancel navigation
Backstack - Cancel navigation
![Page 36: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/36.jpg)
Navigation Events
NavigationMode.Resetraised on page at the top of the backstack; indicates that the app is relaunched
NavigationMode.Newraised when a page is created for new launch Uri
NavigationMode.Refresh raised when launch Uri is same as the page at the top of the backstack
![Page 37: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/37.jpg)
NavigationMode.Reset
Top Page OnNavigatedTo
Top Page OnNavigatedFrom
NavigationMode.New
NavigationMode.Reset
New Page OnNavigatingTo
NavigationMode.New
Clear Page Stack
Cancel Navigation
![Page 38: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/38.jpg)
NavigationMode.Reset - Resume
Top Page OnNavigatedTo
Top Page OnNavigatedFrom
NavigationMode.New
NavigationMode.Reset
Cancel Navigation
Top Page
Resume!!
!
![Page 39: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/39.jpg)
NavigationMode.Reset – Start Fresh
Top Page OnNavigatedTo
Top Page OnNavigatedFrom
NavigationMode.New
NavigationMode.Reset
New Page OnNavigatingTo
NavigationMode.New
Clear Page Stack
![Page 40: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/40.jpg)
Fast Resume Demo
![Page 41: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/41.jpg)
Fast Resume Takeaway
Main Tile: Resume!
Deep Links: Clear the back stack
OnBackKeyPress: Do not block
Test relaunch: between primary tile and deep links
Don’t forget Tombstoning!
![Page 42: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/42.jpg)
In Conclusion…
![Page 43: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/43.jpg)
Take Away
Map Control and Map Services powered by Nokia
Windows Runtime Location APIs
Background Execution for Location Tracking Apps
Want to resume fast? Use Fast Resume!
![Page 44: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/44.jpg)
Maps Toolkit Extension @
http://phone.codeplex.com
App to App Communication Session
Resources
![Page 45: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/45.jpg)
Questions?
![Page 46: Periodic and distance based tracking Desired accuracy in meters Single location request Caching and timeout Position source.Net APIs Windows Runtime](https://reader035.vdocument.in/reader035/viewer/2022070307/551a9f2d5503466b3a8b5604/html5/thumbnails/46.jpg)
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.