From d0f7b861db6ed4c8a7f6900e7d7545a12872afca Mon Sep 17 00:00:00 2001 From: "guowei.wang" Date: Thu, 29 Dec 2022 21:09:28 +0800 Subject: [PATCH] [Mobile] Implement Location. --- .../Location.Tizen.Mobile.cs | 45 ++ .../Location.Tizen.Mobile.csproj | 32 + .../Location.Tizen.Mobile/res/bg_01.png | Bin 0 -> 22312 bytes .../shared/res/Location.Tizen.Mobile.png | Bin 0 -> 10097 bytes .../Location.Tizen.Mobile/tizen-manifest.xml | 13 + Location/Location/Location/Location.csproj | 12 + .../Location/Location/LocationServices.cs | 597 ++++++++++++++++++ Location/README.md | 18 + Location/location.png | Bin 0 -> 17715 bytes 9 files changed, 717 insertions(+) create mode 100755 Location/Location/Location.Tizen.Mobile/Location.Tizen.Mobile.cs create mode 100755 Location/Location/Location.Tizen.Mobile/Location.Tizen.Mobile.csproj create mode 100755 Location/Location/Location.Tizen.Mobile/res/bg_01.png create mode 100755 Location/Location/Location.Tizen.Mobile/shared/res/Location.Tizen.Mobile.png create mode 100755 Location/Location/Location.Tizen.Mobile/tizen-manifest.xml create mode 100755 Location/Location/Location/Location.csproj create mode 100755 Location/Location/Location/LocationServices.cs create mode 100755 Location/README.md create mode 100755 Location/location.png diff --git a/Location/Location/Location.Tizen.Mobile/Location.Tizen.Mobile.cs b/Location/Location/Location.Tizen.Mobile/Location.Tizen.Mobile.cs new file mode 100755 index 0000000..e913911 --- /dev/null +++ b/Location/Location/Location.Tizen.Mobile/Location.Tizen.Mobile.cs @@ -0,0 +1,45 @@ +using Tizen.NUI; +using static Location.LocationServices; + +namespace Location.Tizen.Mobile +{ + class Program : NUIApplication + { + /// + /// This method called when the application created. + /// + protected override void OnCreate() + { + base.OnCreate(); + + Window window = Window.Instance; + window.BackgroundColor = Color.Cyan; + window.KeyEvent += OnKeyEvent; + + InitializePage page = new InitializePage(); + page.PositionUsesPivotPoint = true; + page.ParentOrigin = ParentOrigin.Center; + page.PivotPoint = PivotPoint.Center; + page.Size = new Size(window.WindowSize); + window.Add(page); + } + + public void OnKeyEvent(object sender, Window.KeyEventArgs e) + { + if (e.Key.State == Key.StateType.Down && (e.Key.KeyPressedName == "XF86Back" || e.Key.KeyPressedName == "Escape")) + { + Exit(); + } + } + + /// + /// The main entrance of the application. + /// + /// The arguments. + static void Main(string[] args) + { + var app = new Program(); + app.Run(args); + } + } +} diff --git a/Location/Location/Location.Tizen.Mobile/Location.Tizen.Mobile.csproj b/Location/Location/Location.Tizen.Mobile/Location.Tizen.Mobile.csproj new file mode 100755 index 0000000..e843915 --- /dev/null +++ b/Location/Location/Location.Tizen.Mobile/Location.Tizen.Mobile.csproj @@ -0,0 +1,32 @@ + + + + Exe + netcoreapp3.1 + + + + portable + + + None + + + + + + + + + + + + + + + Runtime + + + + + diff --git a/Location/Location/Location.Tizen.Mobile/res/bg_01.png b/Location/Location/Location.Tizen.Mobile/res/bg_01.png new file mode 100755 index 0000000000000000000000000000000000000000..d5f888ba179c711953593c826778ba53199e05b6 GIT binary patch literal 22312 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 literal 0 HcmV?d00001 diff --git a/Location/Location/Location.Tizen.Mobile/shared/res/Location.Tizen.Mobile.png b/Location/Location/Location.Tizen.Mobile/shared/res/Location.Tizen.Mobile.png new file mode 100755 index 0000000000000000000000000000000000000000..9f3cb98608134e7b9eb4beb7394fec9f03e40f63 GIT binary patch literal 10097 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 TJbOA100000NkvXXu0mjf?x(Kf literal 0 HcmV?d00001 diff --git a/Location/Location/Location.Tizen.Mobile/tizen-manifest.xml b/Location/Location/Location.Tizen.Mobile/tizen-manifest.xml new file mode 100755 index 0000000..7fba859 --- /dev/null +++ b/Location/Location/Location.Tizen.Mobile/tizen-manifest.xml @@ -0,0 +1,13 @@ + + + + + + Location.Tizen.Mobile.png + + + + + http://tizen.org/privilege/location + + diff --git a/Location/Location/Location/Location.csproj b/Location/Location/Location/Location.csproj new file mode 100755 index 0000000..5ff9e4b --- /dev/null +++ b/Location/Location/Location/Location.csproj @@ -0,0 +1,12 @@ + + + + netcoreapp3.1 + + + + + + + + diff --git a/Location/Location/Location/LocationServices.cs b/Location/Location/Location/LocationServices.cs new file mode 100755 index 0000000..f914d5e --- /dev/null +++ b/Location/Location/Location/LocationServices.cs @@ -0,0 +1,597 @@ +using System; +using System.Linq; + +using Tizen.Location; +using Tizen.Security; +using Tizen.NUI; +using Tizen.NUI.Components; +using Tizen.NUI.BaseComponents; + +namespace Location +{ + /// + /// Location service page + /// + public class LocationServices : ContentPage + { + /// + /// Locator instance + /// + private static Locator locator = null; + + /// + /// GpsSatellite instance + /// + private static GpsSatellite satellite = null; + + /// + /// CircleBoundary instance + /// + private static CircleBoundary circle = null; + + private static Button buttonStart; + private static Button buttonGetLocation; + private static Button buttonBoundary; + private static Button buttonTrack; + private static Button buttonSatellite; + private static Button buttonStop; + private static TextLabel textStatus; + private static TextLabel textTrack; + private static TextLabel textMessage; + private static Boolean isTrack = false; + private static Boolean isSatellite = false; + private static Boolean isBound = false; + + /// + /// Constructor + /// + public LocationServices() + { + } + + /// + /// Initialize class + /// + public class InitializePage : ContentPage + { + ButtonStyle style = new ButtonStyle() + { + Size = new Size(Window.Instance.WindowSize.Width - 40, 80), + Text = new TextLabelStyle() + { + TextColor = new Selector() + { + All = Color.White, + }, + PointSize = new Selector() + { + All = 8.0f, + } + }, + CornerRadius = new Vector4(30, 30, 30, 30), + BackgroundColor = new Color("#57C3D8"), + }; + + /// + /// Initialize page + /// + public InitializePage() + { + /// Create new Button to start location service + buttonStart = new Button(style) + { + Text = "Start location service", + }; + + /// Create new Button for getting location + buttonGetLocation = new Button(style) + { + Text = "Get Location" + }; + + /// Create new Button for boundary + buttonBoundary = new Button(style) + { + Text = "Location boundary" + }; + + /// Create new Button for route tracking + buttonTrack = new Button(style) + { + Text = "Track the route" + }; + + /// Create new Button for satellite + buttonSatellite = new Button(style) + { + Text = "Satellite information" + }; + + /// Create new Button to stop location service + buttonStop = new Button(style) + { + Text = "Stop location service" + }; + + /// Create new Label to show current status + textStatus = new TextLabel(); + textTrack = new TextLabel(); + textMessage = new TextLabel(); + textStatus.Text = "[Status]"; + + /// Content view of this page + Content = new View() + { + Size = new Size(Window.Instance.Size), + /// Set padding + Padding = new Extents(20, 20, 20, 20), + Layout = new LinearLayout() + { + LinearOrientation = LinearLayout.Orientation.Vertical, + LinearAlignment = LinearLayout.Alignment.CenterHorizontal, + CellPadding = new Size2D(20, 20), + }, + BackgroundImage = "*Resource*/bg_01.png" + }; + + /// + /// Application title + /// + Content.Add(new TextLabel + { + HorizontalAlignment = HorizontalAlignment.Center, + Text = "Location", + PointSize = 10, + }); + + /// Add buttons to the StackLayout + Content.Add(buttonStart); + Content.Add(buttonGetLocation); + Content.Add(buttonBoundary); + Content.Add(buttonTrack); + Content.Add(buttonSatellite); + Content.Add(buttonStop); + + /// Add Label to show status message + Content.Add(textStatus); + Content.Add(textMessage); + Content.Add(textTrack); + + /// Add button clicked event + buttonStart.Clicked += ButtonStartClicked; + buttonGetLocation.Clicked += ButtonGetLocationClicked; + buttonBoundary.Clicked += ButtonBoundaryClicked; + buttonTrack.Clicked += ButtonTrackClicked; + buttonSatellite.Clicked += ButtonSatelliteClicked; + buttonStop.Clicked += ButtonStopClicked; + + /// Set initial state of button enabled + buttonGetLocation.IsEnabled = false; + buttonGetLocation.BackgroundColor = new Color("#C4E4EA"); + buttonBoundary.IsEnabled = false; + buttonBoundary.BackgroundColor = new Color("#C4E4EA"); + buttonTrack.IsEnabled = false; + buttonTrack.BackgroundColor = new Color("#C4E4EA"); + buttonSatellite.IsEnabled = false; + buttonSatellite.BackgroundColor = new Color("#C4E4EA"); + buttonStop.IsEnabled = false; + buttonStop.BackgroundColor = new Color("#C4E4EA"); + + /// Check location permission + PrivilegeCheck(); + } + + /// + /// Permission check + /// + private void PrivilegeCheck() + { + try + { + /// Check location permission + CheckResult result = PrivacyPrivilegeManager.CheckPermission("http://tizen.org/privilege/location"); + + switch (result) + { + case CheckResult.Allow: + break; + case CheckResult.Deny: + break; + case CheckResult.Ask: + /// Request to privacy popup + PrivacyPrivilegeManager.RequestPermission("http://tizen.org/privilege/location"); + break; + } + } + catch (Exception ex) + { + /// Exception handling + textStatus.Text = "[Status] Privilege : " + ex.Message; + } + } + + /// + /// Button event to start location service + /// + /// object + /// EventArgs + private void ButtonStartClicked(object sender, EventArgs e) + { + if (locator == null) + { + try + { + /// + /// Create Locator instance, sets LocationType to GPS + /// + /// This method selects the best method available at the moment. + /// This method uses Global Positioning System. + /// This method uses WiFi Positioning System. + /// This method uses passive mode. + locator = new Locator(LocationType.Gps); + + /// Create GpsSatellite instance + satellite = new GpsSatellite(locator); + + if (locator != null) + { + /// Starts the Locator which has been created using the specified method. + locator.Start(); + textStatus.Text = "[Status] Start location service, GPS searching ..."; + + /// Add ServiceStateChanged event to receive the event regarding service state + locator.ServiceStateChanged += Locator_ServiceStateChanged; + + /// Disable start button to avoid duplicated call. + buttonStart.IsEnabled = false; + buttonStart.BackgroundColor = new Color("#C4E4EA"); + + // Enable available buttons + buttonSatellite.IsEnabled = true; + buttonSatellite.BackgroundColor = new Color("#57C3D8"); + buttonStop.IsEnabled = true; + buttonStop.BackgroundColor = new Color("#57C3D8"); + } + else + { + /// Locator creation failed + textStatus.Text = "[Status] Location initialize .. Failed"; + } + } + catch (Exception ex) + { + /// Exception handling + textStatus.Text = "[Status] Location Initialize : " + ex.Message; + } + } + } + + /// + /// Event : ServiceStateChanged + /// + /// object + /// An enumeration of type LocationServiceState. + private void Locator_ServiceStateChanged(object sender, ServiceStateChangedEventArgs e) + { + /// Service is disabled. + /// Service is enabled. + if (e.ServiceState == ServiceState.Enabled) + { + /// Service state changed to Enabled + textStatus.Text = "[Status] Location service enabled"; + + /// Update button status + buttonStart.IsEnabled = false; + buttonStart.BackgroundColor = new Color("#C4E4EA"); + + /// Enable buttons to show available method + buttonTrack.IsEnabled = true; + buttonTrack.BackgroundColor = new Color("#57C3D8"); + buttonGetLocation.IsEnabled = true; + buttonGetLocation.BackgroundColor = new Color("#57C3D8"); + buttonBoundary.IsEnabled = true; + buttonBoundary.BackgroundColor = new Color("#57C3D8"); + } + else + { + /// Service state changed to Disabled + textStatus.Text = "[Status] Service disabled, GPS searching ..."; + } + } + + /// + /// Button event to get current location + /// + /// object + /// EventArgs + private void ButtonGetLocationClicked(object sender, EventArgs e) + { + try + { + /// + /// Gets the details of the location. + /// + /// The current latitude [-90.0 ~ 90.0] (degrees). + /// The current longitude [-180.0 ~ 180.0] (degrees). + /// The current altitude (meters). + /// The device speed (km/h). + /// The direction and degrees from the north. + /// The accuracy. + /// The time value when the measurement was done. + Tizen.Location.Location l = locator.GetLocation(); + textMessage.Text = "[GetLocation]" + "\n Timestamp : " + l.Timestamp + "\n Latitude : " + l.Latitude + "\n Longitude : " + l.Longitude; + } + catch (Exception ex) + { + /// Exception when location service is not available + textMessage.Text = "[GetLocation]" + "\n Exception : " + ex.Message; + } + } + + /// + /// Event : LocationChanged + /// + /// object + /// Object of the Location class. + private void Locator_LocationChanged(object sender, LocationChangedEventArgs e) + { + /// LocationChanged event invoked, + /// Available values : Latitude, Longitude, Altitude, Speed, Direction, Accuracy, Timestamp + textTrack.Text = "[Tracking] " + "\n Latitude : " + e.Location.Latitude + "\n Longitude : " + e.Location.Longitude; + } + + /// + /// Remove LocationChanged event + /// + private void CancelTrack() + { + /// Remove LocationChanged event + locator.LocationChanged -= Locator_LocationChanged; + buttonTrack.Text = "Track the route"; + isTrack = false; + } + + /// + /// Button event for location tracking + /// + /// object + /// EventArgs + private void ButtonTrackClicked(object sender, EventArgs e) + { + if (isTrack == true) + { + CancelTrack(); + textTrack.Text = ""; + } + else + { + /// Add LocationChanged event + locator.LocationChanged += Locator_LocationChanged; + buttonTrack.Text = "Cancel route tracking"; + isTrack = true; + } + } + + /// Cancel satellite information + private void CancelSatellite() + { + /// Remove SatelliteStatusUpdated event + satellite.SatelliteStatusUpdated -= Satellite_SatelliteStatusUpdated; + buttonSatellite.Text = "Satellite information"; + isSatellite = false; + } + + /// + /// Button event to receive satellite information + /// + /// object + /// EventArgs + private void ButtonSatelliteClicked(object sender, EventArgs e) + { + if (isSatellite == true) + { + /// Cancel satellite information + CancelSatellite(); + textMessage.Text = ""; + } + else + { + /// Add SatelliteStatusUpdated event + try + { + satellite.SatelliteStatusUpdated += Satellite_SatelliteStatusUpdated; + buttonSatellite.Text = "Cancel satellite information"; + isSatellite = true; + } + catch (Exception ex) + { + /// Exception handling + textMessage.Text = "[Satellite]\n Exception : " + ex.Message; + } + } + } + + /// + /// Event : SatelliteStatusUpdated + /// If InViewCount is bigger than 0, SatelliteInformation is available + /// + /// object + /// SatelliteStatusChangedEventArgs + private void Satellite_SatelliteStatusUpdated(object sender, SatelliteStatusChangedEventArgs e) + { + try + { + /// The number of active satellites. + /// The number of satellites in view. + /// The time at which the data has been extracted. + if (e.InViewCount > 0) + { + /// + /// Satellites returns values + /// ElementAt(0) used to check one of SatelliteInformation + /// + /// The azimuth value of the satellite in degrees. + /// The elevation of the satellite in meters. + /// The PRN value of the satellite. + /// The SNR value of the satellite in dB. + /// The flag signaling if the satellite is in use. + SatelliteInformation s = satellite.Satellites.ElementAt(0); + textMessage.Text = "[Satellite]" + "\n Timestamp : " + e.Timestamp + "\n Active : " + e.ActiveCount + " , Inview : " + e.InViewCount + "\n azimuth[" + s.Azimuth + "] elevation[" + s.Elevation + "] prn[" + s.Prn + "]\n snr[" + s.Snr + "] active[" + s.Active + "]"; + } + else + { + /// ActiveCount and InViewCount are available when SatelliteSttatusUpdated event invoked. + textMessage.Text = "[Satellite]" + "\n Timestamp : " + e.Timestamp + "\n Active : " + e.ActiveCount + " , Inview : " + e.InViewCount; + } + } + catch (Exception ex) + { + /// Exception when location service is not available + textMessage.Text = "[Satellite]\n Exception : " + ex.Message; + } + } + + /// Cancel boundary + private void CancelBoundary() + { + /// Remove ZoneChanged event + locator.ZoneChanged -= Locator_ZoneChanged; + buttonBoundary.Text = "Location boundary"; + isBound = false; + + /// RemoveBoundary to remove boundary method + locator.RemoveBoundary(circle); + + /// Dispose to release circle instance. + circle.Dispose(); + circle = null; + } + + /// + /// Button event to set location boundary + /// + /// object + /// EventArgs + private void ButtonBoundaryClicked(object sender, EventArgs e) + { + /// Set initial position + Coordinate center; + center.Latitude = 10.1234; + center.Longitude = 20.1234; + + /// Set radius value to detect out of boundary + double radius = 50.0; + + try + { + if (isBound == true) + { + /// Cancel boundary + CancelBoundary(); + textMessage.Text = ""; + } + else + { + buttonBoundary.Text = "Cancel location boundary"; + isBound = true; + + /// Create circle boundary + /// The coordinates which constitute the center of the circular boundary. + /// The radius value of the circular boundary. + circle = new CircleBoundary(center, radius); + + /// Add circle boundary to detect zone changed + locator.AddBoundary(circle); + + /// Add ZoneChanged event + locator.ZoneChanged += Locator_ZoneChanged; + } + } + catch (Exception ex) + { + /// Exception handling + textMessage.Text = "[Boundary]\n Exception : " + ex.Message; + } + } + + + /// + /// Event : ZoneChanged + /// + /// object + /// ZoneChangedEventArgs + private void Locator_ZoneChanged(object sender, ZoneChangedEventArgs e) + { + /// An enumeration of type BoundaryState. + /// The latitude value [-90.0 ~ 90.0] (degrees). + /// The longitude value [-180.0 ~ 180.0] (degrees). + /// The altitude value. + /// The timestamp value. + textMessage.Text = "[Boundary]\n Timestamp : " + e.Timestamp + "\n BoundState : " + e.BoundState + "\n Latitude : " + e.Latitude + "\n Longitude : " + e.Longitude; + } + + /// + /// Button event to stop location service + /// + /// object + /// EventArgs + private void ButtonStopClicked(object sender, EventArgs e) + { + try + { + if (circle != null) + { + /// Cancel boundary when stop button clicked + CancelBoundary(); + } + + if (isTrack == true) + { + /// Cancel tracking when stop button clicked + CancelTrack(); + } + + if (isSatellite == true) + { + /// Cancel satellite when stop button clicked + CancelSatellite(); + } + + /// Remove text messages + textMessage.Text = ""; + textTrack.Text = ""; + + /// Stop to location service + locator.Stop(); + + /// Dispose to release location resource + locator.Dispose(); + locator = null; + satellite = null; + + /// Enable location button after Stop() method called. + buttonStart.IsEnabled = true; + buttonStart.BackgroundColor = new Color("#57C3D8"); + + /// Disable buttons when location in not available. + buttonTrack.IsEnabled = false; + buttonTrack.BackgroundColor = new Color("#C4E4EA"); + buttonBoundary.IsEnabled = false; + buttonBoundary.BackgroundColor = new Color("#C4E4EA"); + buttonGetLocation.IsEnabled = false; + buttonGetLocation.BackgroundColor = new Color("#C4E4EA"); + buttonSatellite.IsEnabled = false; + buttonSatellite.BackgroundColor = new Color("#C4E4EA"); + buttonStop.IsEnabled = false; + buttonStop.BackgroundColor = new Color("#C4E4EA"); + textStatus.Text = "[Status] Stop location service"; + } + catch (Exception ex) + { + /// Exception handling + textMessage.Text = "[Stop]\n Exception : " + ex.Message; + } + } + } + } +} diff --git a/Location/README.md b/Location/README.md new file mode 100755 index 0000000..6aa5369 --- /dev/null +++ b/Location/README.md @@ -0,0 +1,18 @@ +# Location +This sample application demonstrates how to implement location. + +![Main page - overview](./location.png) + + +### Features +* Location information of a place with additional navigation. + +### Prerequisites + +* [Visual Studio](https://www.visualstudio.com/) - Buildtool, IDE +* [Visual Studio Tools for Tizen](https://docs.tizen.org/application/vstools/install) - Visual Studio plugin for Tizen .NET application development + +### Precondition + +* GPS should be "ON" in testing device for Location. + diff --git a/Location/location.png b/Location/location.png new file mode 100755 index 0000000000000000000000000000000000000000..783b4e470a6ceeaa89c8fcd7c92ce0e8c35d1a89 GIT binary patch literal 17715 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 JUcL$Z{{SbpvkL$K literal 0 HcmV?d00001