Example #1
0
        public LocationHandler(Context context)
        {
            // Create client from context
            client = LocationServices.GetFusedLocationProviderClient(context);

            // Create Android location manager
            locationManager = context.GetSystemService(Context.LocationService) as LocationManager;

            // Create location request and set some options
            locationRequest = new LocationRequest();
            locationRequest.SetPriority(LocationRequest.PriorityHighAccuracy);
            locationRequest.SetInterval(1000);

            // Receives all location updates
            locationCallback = new LocationCallback();
            locationCallback.LocationResult += (sender, args) =>
            {
                if (args.Result == null)
                {
                    return;
                }

                foreach (var location in args.Result.Locations)
                {
                    OnLocationUpdate?.Invoke(location);
                }
            };

            // Start receiving location updates
            Start();
        }
Example #2
0
        public void checkLocationSettings()
        {
            TestTip.Inst.ShowText("check location settings start");
            mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(new Context());
            mSettingsClient  = LocationServices.getSettingsClient(new Context());
            mLocationRequest = new LocationRequest();
            mLocationRequest.setInterval(5000);
            mLocationRequest.setPriority(102);
            LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
            builder.addLocationRequest(mLocationRequest);
            LocationSettingsRequest locationSettingsRequest = builder.build();

            Task task = mSettingsClient.checkLocationSettings(locationSettingsRequest);

            task.addOnSuccessListener(new HmsSuccessListener <LocationSettingsResponse>((LocationSettingsResponse locationSettingsResponse) =>
            {
                var locationSettingsStates = locationSettingsResponse.getLocationSettingsStates();
                TestTip.Inst.ShowText($"isBleUsable: {locationSettingsStates.isBleUsable()}");
                TestTip.Inst.ShowText($"isBlePresent: {locationSettingsStates.isBlePresent()}");
                TestTip.Inst.ShowText($"isGpsPresent: {locationSettingsStates.isGpsPresent()}");
                TestTip.Inst.ShowText($"isGpsUsable: {locationSettingsStates.isGpsUsable()}");
                TestTip.Inst.ShowText($"isLocationPresent: {locationSettingsStates.isLocationPresent()}");
                TestTip.Inst.ShowText($"isLocationUsable: {locationSettingsStates.isLocationUsable()}");
                TestTip.Inst.ShowText($"isNetworkLocationPresent: {locationSettingsStates.isNetworkLocationPresent()}");
                TestTip.Inst.ShowText($"isNetworkLocationUsable: {locationSettingsStates.isNetworkLocationUsable()}");
            }));
            task.addOnFailureListener(new HmsFailureListener((Exception e) => SetSettingsFailuer(e)));
        }
Example #3
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.main);
            var toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);

            if (toolbar != null)
            {
                SetSupportActionBar(toolbar);
                SupportActionBar.SetDisplayHomeAsUpEnabled(false);
                SupportActionBar.SetHomeButtonEnabled(false);
            }


            startButton        = FindViewById <Button>(Resource.Id.start_updates_button);
            startButton.Click += async(sender, args) => await StartLocationUpdatesAsync();

            stopButton        = FindViewById <Button>(Resource.Id.stop_updates_button);
            stopButton.Click += (sender, args) => StopLocationUpdates();

            latitudeTextView  = FindViewById <TextView>(Resource.Id.latitude_text);
            longitudeTextView = FindViewById <TextView>(Resource.Id.longitude_text);
            timeTextView      = FindViewById <TextView>(Resource.Id.last_update_time_text);

            fusedLocationClient = LocationServices.GetFusedLocationProviderClient(this);
            settingsClient      = LocationServices.GetSettingsClient(this);

            if (bundle != null)
            {
                var keys = bundle.KeySet();
                if (keys.Contains(KeyRequesting))
                {
                    requestingUpdates = bundle.GetBoolean(KeyRequesting);
                }

                if (keys.Contains(KeyLocation))
                {
                    currentLocation = bundle.GetParcelable(KeyLocation) as Location;
                }

                if (keys.Contains(KeyLastUpdated))
                {
                    lastUpdateTime = bundle.GetString(KeyLastUpdated);
                }
            }

            locationCallback = new MyLocationCallback();

            //Create request and set intervals:
            //Interval: Desired interval for active location updates, it is inexact and you may not receive upates at all if no location servers are available
            //Fastest: Interval is exact and app will never receive updates faster than this value
            locationRequest = new LocationRequest()
                              .SetInterval(UpdateInterval)
                              .SetFastestInterval(FastestUpdateInterval)
                              .SetPriority(LocationRequest.PriorityHighAccuracy);

            locationSettingsRequest = new LocationSettingsRequest.Builder().AddLocationRequest(locationRequest).Build();

            UpdateUI();
        }
Example #4
0
        private void InitializeGoogleAPI()
        {
            int queryResult = GoogleApiAvailability.Instance.IsGooglePlayServicesAvailable(Android.App.Application.Context);

            if (queryResult == ConnectionResult.Success)
            {
                string message = string.Format("{0} - {1}", CrossGeofence.Id, "Google Play services is available.");
                System.Diagnostics.Debug.WriteLine(message);

                if (mGeofenceClient == null)
                {
                    mGeofenceClient = LocationServices.GetGeofencingClient(Android.App.Application.Context);
                }

                if (mFusedLocationClient == null)
                {
                    var locationRequest = GetLocationRequest();
                    mFusedLocationClient = LocationServices.GetFusedLocationProviderClient(Android.App.Application.Context);
                    mFusedLocationClient.RequestLocationUpdatesAsync(locationRequest, new FusedLocationCallback(this));
                }

                //if (!mGoogleApiClient.IsConnected)
                //{
                //    mGoogleApiClient.Connect();
                //}
            }
            else
            {
                string message = string.Format("{0} - {1}", CrossGeofence.Id, "Google Play services is unavailable.");
                System.Diagnostics.Debug.WriteLine(message);
                CrossGeofence.GeofenceListener.OnError(message);
            }
        }
Example #5
0
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.Main);

            fusedLocationProviderClient = LocationServices.GetFusedLocationProviderClient(this);
            rootLayout = FindViewById(Resource.Layout.Main);
            checkPermission();

            if (IsGooglePlayServicesInstalled())
            {
                var lastLocation = await GetLastLocationFromDevice();

                double?longitude = lastLocation?.longitude;
                double?latitude  = lastLocation?.latitude;

                WeatherService weather = new WeatherService();


                TextView weatherResponseText = FindViewById <TextView>(Resource.Id.textView1);
                weatherResponseText.Text = weather.GetWeather(latitude.ToString(), longitude.ToString());
            }
            else
            {
                // If there is no Google Play Services installed, then this sample won't run.
                Snackbar.Make(rootLayout, Resource.String.missing_googleplayservices_terminating, Snackbar.LengthIndefinite)
                .SetAction(Resource.String.ok, delegate { FinishAndRemoveTask(); })
                .Show();
            }


            // Create your application here
        }
        /// <summary>
        /// On Google play services Connection handling
        /// </summary>
        /// <param name="connectionHint"></param>

        async public void OnConnected(Bundle connectionHint)
        {
            FusedLocationProviderClient localClient = null;

            // must lock here to ensure initialization is complete before this callback is executed by another thread.
            // accessing the member var `mFusedLocationProviderClient` within the lock ensures variable publishing.
            // the local scoped variable can reference the member instance then `await` syntax used outside the lock.
            lock (Lock)
            {
                localClient = mFusedLocationProviderClient;
            }
            var location = await localClient.GetLastLocationAsync();

            SetLastKnownLocation(location);
            if (CurrentRequestType == RequestType.Add)
            {
                AddGeofences();
                StartLocationUpdates();
            }
            else if (CurrentRequestType == RequestType.Clear)
            {
                RemoveGeofences();
            }
            else if (CurrentRequestType == RequestType.Delete)
            {
                if (mRequestedRegionIdentifiers != null)
                {
                    RemoveGeofences(mRequestedRegionIdentifiers);
                }
            }

            CurrentRequestType = RequestType.Default;
            System.Diagnostics.Debug.WriteLine("Connection obtained, starting service");
        }
Example #7
0
        /// <summary>
        /// Loads all of the needed elements
        /// </summary>
        /// <param name="savedInstanceState"></param>
        protected override void OnCreate(Bundle savedInstanceState)
        {
            try
            {
                base.OnCreate(savedInstanceState);

                Forms.Init(this, savedInstanceState);
                Xamarin.Essentials.Platform.Init(this, savedInstanceState);

                SetContentView(Resource.Layout.activity_main);

                finalOrder = new FinalOrder();

                fusedLocationProviderClient = LocationServices.GetFusedLocationProviderClient(this);
                var location = fusedLocationProviderClient.GetLastLocationAsync();

                MapFragment mapFragment = (MapFragment)FragmentManager.FindFragmentById(Resource.Id.map);

                mapFragment.GetMapAsync(this);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
        public void CheckLocationSetting()
        {
            TestTip.Inst.ShowText("RequestLocationUpdatesWithCallback start");
            this.requestType             = CALLBACK;
            mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(new Context());
            mSettingsClient  = LocationServices.getSettingsClient(new Context());
            mLocationRequest = new LocationRequest();
            mLocationRequest.setInterval(5000);
            mLocationRequest.setPriority(102);
            // get LocationSettingsRequest
            LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
            builder.addLocationRequest(mLocationRequest);
            LocationSettingsRequest locationSettingsRequest = builder.build();

            Task task = mSettingsClient.checkLocationSettings(locationSettingsRequest);

            task.addOnSuccessListener(new HmsSuccessListener <LocationSettingsResponse>((LocationSettingsResponse setting) =>
            {
                var status = setting.getLocationSettingsStates();
                TestTip.Inst.ShowText($"isBlePresent :{status.isBlePresent()}");
                TestTip.Inst.ShowText($"isBleUsable :{status.isBleUsable()}");
                TestTip.Inst.ShowText($"isGpsPresent :{status.isGpsPresent()}");
                TestTip.Inst.ShowText($"isGpsUsable :{status.isGpsUsable()}");
                TestTip.Inst.ShowText($"isLocationPresent :{status.isLocationPresent()}");
                TestTip.Inst.ShowText($"isLocationUsable :{status.isLocationUsable()}");
                TestTip.Inst.ShowText($"isNetworkLocationPresent :{status.isNetworkLocationPresent()}");
                TestTip.Inst.ShowText($"isNetworkLocationUsable :{status.isNetworkLocationUsable()}");
            })).addOnFailureListener(new HmsFailureListener((Exception e) => SetSettingsFailuer(e)));
        }
Example #9
0
        public async Task <Position> GetLocationAsync()
        {
            tcsResult = new TaskCompletionSource <bool>();
            Context context = Android.App.Application.Context;

            fusedLocationProviderClient = LocationServices.GetFusedLocationProviderClient(context);
            LocationRequest locationRequest = new LocationRequest();

            //Set the location update interval (int milliseconds).
            locationRequest.SetInterval(10000);
            //Set the weight.
            locationRequest.SetPriority(LocationRequest.PriorityHighAccuracy);

            try
            {
                await fusedLocationProviderClient.RequestLocationUpdatesAsync(locationRequest, this, Looper.MainLooper);

                await tcsResult.Task;
                Log.Info(Tag, $"User Location {userLocation.Longitude},{userLocation.Latitude}");
                return(userLocation);
            }
            catch (Exception e)
            {
                Log.Error(Tag, $"GetLocationAsync exception: {e.Message}");
            }

            return(null);
        }
Example #10
0
        private void InitLocationRequest()
        {
            try
            {
                locationRequest = new LocationRequest()
                                  .SetPriority(LocationRequest.PriorityHighAccuracy)
                                  .SetInterval(6 * 1000 * 2)
                                  .SetFastestInterval(6 * 1000);

                locationCallback            = new FusedLocationProviderCallback((MainActivity)CrossCurrentActivity.Current.Activity);
                fusedLocationProviderClient = LocationServices.GetFusedLocationProviderClient(CrossCurrentActivity.Current.Activity);

                /*Criteria locationCriteria = new Criteria();
                 * //locationCriteria.Accuracy = Accuracy.High;
                 * locationCriteria.PowerRequirement = Power.High;
                 *
                 * var locationProvider = locationManager.GetBestProvider(locationCriteria, true);
                 *
                 * var intent = new Intent(CrossCurrentActivity.Current.Activity, typeof(MainActivity));
                 * var resultPendingIntent = PendingIntent.GetActivity(Forms.Context, 0, intent, PendingIntentFlags.OneShot);
                 *
                 * locationManager.RequestLocationUpdates(locationProvider, 2000, 1, resultPendingIntent);*/
            }
            catch (Exception ex)
            {
                Log.Error("GPS EXCEPTION", ex.StackTrace);
            }
        }
 public OnSettingsSuccessListener(RequestWithIntentActivity locationActivity, FusedLocationProviderClient fusedLocationProviderClient, LocationRequest locationRequest, PendingIntent pendingIntent)
 {
     this.locationActivity            = locationActivity;
     this.fusedLocationProviderClient = fusedLocationProviderClient;
     this.locationRequest             = locationRequest;
     this.pendingIntent = pendingIntent;
 }
Example #12
0
 public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Permission[] grantResults)
 {
     base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
     if (permissions.Length == 1 &&
         permissions[0] == Android.Manifest.Permission.AccessFineLocation && grantResults[0] == Permission.Granted)
     {
         if (ContextCompat.CheckSelfPermission(this, Android.Manifest.Permission.AccessFineLocation) != Permission.Granted && ContextCompat.CheckSelfPermission(this, Android.Manifest.Permission.AccessFineLocation) != Permission.Granted)
         {
             return;
         }
         BuildLocationRequest();
         LocationCallBack();
         FusedLocationProviderClient1 = LocationServices.GetFusedLocationProviderClient(this);
         if (KonumKontrol())
         {
             BekletVeUygula();
         }
     }
     else
     {
         if (KonumKontrol())
         {
             BekletVeUygula();
         }
     }
 }
        /// <inheritdoc />
        public override void OnCreate()
        {
            _fusedLocationClient = LocationServices.GetFusedLocationProviderClient(this);

            _locationCallback = new LocationCallback();
            _locationCallback.LocationResult += (sender, args) => OnNewLocation(args.Result.LastLocation);

            CreateLocationRequest();
            GetLastLocation();

            var handlerThread = new HandlerThread(Tag);

            handlerThread.Start();
            _serviceHandler      = new Handler(handlerThread.Looper);
            _notificationManager = (NotificationManager)GetSystemService(NotificationService);

            // Android O requires a Notification Channel.
            if (Build.VERSION.SdkInt >= BuildVersionCodes.O)
            {
                var name = GetString(Resource.String.app_name);
                // Create the channel for the notification
                var mChannel = new NotificationChannel(ChannelId, name, NotificationImportance.Low);

                // Set the Notification Channel for the Notification Manager.
                _notificationManager.CreateNotificationChannel(mChannel);
            }
        }
Example #14
0
 public OnCallbackSettingsSuccessListener(RequestWithCallbackActivity locationActivity, FusedLocationProviderClient fusedLocationProviderClient, LocationRequest locationRequest, LocationCallback callback)
 {
     this.locationActivity            = locationActivity;
     this.fusedLocationProviderClient = fusedLocationProviderClient;
     this.locationRequest             = locationRequest;
     this.locationCallback            = callback;
 }
Example #15
0
 void GPS_StatusChange()
 {
     try
     {
         if (_locationService is null)
         {
             _locationManager = (LocationManager)GetSystemService(Context.LocationService);
             Criteria criteriaForLocationService = new Criteria
             {
                 Accuracy = Accuracy.Fine
             };
             IList <string> acceptableLocationProviders = _locationManager.GetProviders(criteriaForLocationService, true);
             if (acceptableLocationProviders.Any())
             {
                 _locationManager.RequestLocationUpdates(acceptableLocationProviders.First(), 0, 0, this);
             }
             _locationService = LocationServices.GetFusedLocationProviderClient(this);
             var locationRequest = new LocationRequest();
             locationRequest.SetInterval(180000);
             locationRequest.SetFastestInterval(90000);
             locationRequest.SetPriority(LocationRequest.PriorityHighAccuracy);
             _providerCallback = new FusedLocationProviderCallback();
             _locationService.RequestLocationUpdates(locationRequest, _providerCallback, Looper.MyLooper());
         }
     }
     catch (Exception e)
     {
         //Crashes.TrackError(e);
     }
 }
Example #16
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            if (bundle != null)
            {
                isRequestingLocationUpdates = bundle.KeySet().Contains(KEY_REQUESTING_LOCATION_UPDATES) &&
                                              bundle.GetBoolean(KEY_REQUESTING_LOCATION_UPDATES);
            }
            else
            {
                isRequestingLocationUpdates = false;
            }

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);
            isGooglePlayServicesInstalled = IsGooglePlayServicesInstalled();
            rootLayout = FindViewById(Resource.Id.root_layout);

            // UI to display last location
            getLastLocationButton = FindViewById <Button>(Resource.Id.get_last_location_button);
            latitude  = FindViewById <TextView>(Resource.Id.latitude);
            longitude = FindViewById <TextView>(Resource.Id.longitude);
            provider  = FindViewById <TextView>(Resource.Id.provider);

            // UI to display location updates
            requestLocationUpdatesButton = FindViewById <Button>(Resource.Id.request_location_updates_button);
            latitude2  = FindViewById <TextView>(Resource.Id.latitude2);
            longitude2 = FindViewById <TextView>(Resource.Id.longitude2);
            provider2  = FindViewById <TextView>(Resource.Id.provider2);

            //addressText = FindViewById<TextView>(Resource.Id.address_text);
            //locationText = FindViewById<TextView>(Resource.Id.location_text);
            macAddressText   = FindViewById <TextView>(Resource.Id.macaddress);
            batteryLevelText = FindViewById <TextView>(Resource.Id.batterylevel);

            //batteryLevelText = FindViewById<TextView>(Resource.Id.batterylevel_text);
            //FindViewById<TextView>(Resource.Id.get_address_button).Click += AddressButton_OnClick;


            if (isGooglePlayServicesInstalled)
            {
                locationRequest = new LocationRequest()
                                  .SetPriority(LocationRequest.PriorityHighAccuracy)
                                  .SetInterval(FIVE_MINUTES)
                                  .SetFastestInterval(TWO_MINUTES);
                locationCallback = new FusedLocationProviderCallback(this);

                fusedLocationProviderClient         = LocationServices.GetFusedLocationProviderClient(this);
                getLastLocationButton.Click        += GetLastLocationButtonOnClick;
                requestLocationUpdatesButton.Click += RequestLocationUpdatesButtonOnClick;
            }
            else
            {
                // If there is no Google Play Services installed, then this sample won't run.
                Snackbar.Make(rootLayout, Resource.String.missing_googleplayservices_terminating, Snackbar.LengthIndefinite)
                .SetAction(Resource.String.ok, delegate { FinishAndRemoveTask(); })
                .Show();
            }
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.activity_main);

            mRequestUpdatesButton      = FindViewById(Resource.Id.request_updates_button) as Button;
            mRemoveUpdatesButton       = FindViewById(Resource.Id.remove_updates_button) as Button;
            mLocationUpdatesResultView = FindViewById(Resource.Id.location_updates_result) as TextView;

            mRequestUpdatesButton.Click += (sender, e) => {
                RequestLocationUpdates(null);
            };

            mRemoveUpdatesButton.Click += (sender, e) => {
                RemoveLocationUpdates(null);
            };

            // Check if the user revoked runtime permissions.
            if (!CheckPermissions())
            {
                RequestPermissions();
            }

            mFusedLocationClient = LocationServices.GetFusedLocationProviderClient(this);
            CreateLocationRequest();
        }
Example #18
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);


            Window.RequestFeature(WindowFeatures.NoTitle);
            SetContentView(Resource.Layout.activity_main);

            if (IsGooglePlayServicesInstalled())
            {
                _fusedLocationProviderClient = LocationServices.GetFusedLocationProviderClient(this);
                _locationTextView            = FindViewById <TextView>(Resource.Id.textViewCoordinates);

                _locationRequest = new LocationRequest()
                                   .SetPriority(LocationRequest.PriorityHighAccuracy)
                                   .SetInterval(5 * 1000)
                                   .SetFastestInterval(5 * 1000);

                ActivityCompat.RequestPermissions(this, new[] { Manifest.Permission.AccessFineLocation }, RC_LOCATION_UPDATES_PERMISSION_CHECK);
            }

            InitializeDataSetFetchers();

            InitializeSearchStrategies();

            InitializeSearchAlgorithms();

            SetupDataSetSpinner();
            SetupSearchMethodSpinner();
            SetupSearchEditText();
        }
Example #19
0
        async Task StartLocationUpdatesAsync()
        {
            // Create a callback that will get the location updates
            if (locationCallback == null)
            {
                locationCallback = new MyLocationCallback();
                locationCallback.LocationUpdated += OnLocationResult;
            }

            // Get the current client
            if (locationClient == null)
            {
                locationClient = LocationServices.GetFusedLocationProviderClient(this);
            }

            try
            {
                //Create request and set intervals:
                //Interval: Desired interval for active location updates, it is inexact and you may not receive upates at all if no location servers are available
                //Fastest: Interval is exact and app will never receive updates faster than this value
                var locationRequest = new LocationRequest()
                                      .SetInterval(10000)
                                      .SetFastestInterval(5000)
                                      .SetPriority(LocationRequest.PriorityHighAccuracy);

                await locationClient.RequestLocationUpdatesAsync(locationRequest, locationCallback);
            }
            catch (Exception)
            {
            }
        }
Example #20
0
        void KonumSor()
        {
            var UserInfoo = DataBase.MEMBER_DATA_GETIR();

            if (UserInfoo.Count > 0)
            {
                if (ContextCompat.CheckSelfPermission(this, Android.Manifest.Permission.AccessFineLocation) == Permission.Granted)
                {
                    BuildLocationRequest();
                    LocationCallBack();
                    FusedLocationProviderClient1 = LocationServices.GetFusedLocationProviderClient(this);
                    if (KonumKontrol())
                    {
                        BekletVeUygula();
                    }
                }
                else
                {
                    RequestPermissions(new String[] { Android.Manifest.Permission.AccessFineLocation }, 1);
                }
            }
            else
            {
                StartActivity(typeof(LoginBaseActivity));
                this.Finish();
            }
        }
Example #21
0
        protected override void OnCreate(Bundle bundle)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            UserDialogs.Init(this);

            FirebaseApp.InitializeApp(this);
            firebaseAnalytics = FirebaseAnalytics.GetInstance(this);

            var playAvailable = IsPlayServicesAvailable();

            if (playAvailable)
            {
                new GetRemoteConfig();
                Intent locIntent = new Intent(this, typeof(SaleLocationService));
                StartService(locIntent);
                fusedLocationProviderClient = LocationServices.GetFusedLocationProviderClient(this);
                FusedLocationProviderCallback callback = new FusedLocationProviderCallback(this);
                fusedLocationProviderClient.RequestLocationUpdatesAsync(callback.LocationRequest, callback);
            }

            base.OnCreate(bundle);

            global::Xamarin.Forms.Forms.Init(this, bundle);
            global::Xamarin.FormsMaps.Init(this, bundle);
            LoadApplication(new App());
#if DEBUG
            MocksLocation();
#endif
        }
Example #22
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.main_activity);
            var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolbar);

            mStartUpdatesButton     = FindViewById <Button>(Resource.Id.start_updates_button);
            mStopUpdatesButton      = FindViewById <Button>(Resource.Id.stop_updates_button);
            mLatitudeTextView       = FindViewById <TextView>(Resource.Id.latitude_text);
            mLongitudeTextView      = FindViewById <TextView>(Resource.Id.longitude_text);
            mLastUpdateTimeTextView = FindViewById <TextView>(Resource.Id.last_update_time_text);

            mStartUpdatesButton.Click += StartUpdatesButtonHandler;
            mStopUpdatesButton.Click  += StopUpdatesButtonHandler;

            mLatitudeLabel       = GetString(Resource.String.latitude_label);
            mLongitudeLabel      = GetString(Resource.String.longitude_label);
            mLastUpdateTimeLabel = GetString(Resource.String.last_update_time_label);

            mRequestingLocationUpdates = false;
            mLastUpdateTime            = string.Empty;

            UpdateValuesFromBundle(savedInstanceState);

            mFusedLocationClient = LocationServices.GetFusedLocationProviderClient(this);
            mSettingsClient      = LocationServices.GetSettingsClient(this);

            CreateLocationCallback();
            CreateLocationRequest();
            BuildLocationSettingsRequest();
        }
Example #23
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            if (bundle != null)
            {
                isRequestingLocationUpdates = bundle.KeySet().Contains(KEY_REQUESTING_LOCATION_UPDATES) &&
                                              bundle.GetBoolean(KEY_REQUESTING_LOCATION_UPDATES);
            }
            else
            {
                isRequestingLocationUpdates = false;
            }

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);
            isGooglePlayServicesInstalled = IsGooglePlayServicesInstalled();
            rootLayout = FindViewById(Resource.Id.root_layout);

            // UI to display last location
            getLastLocationButton = FindViewById <Button>(Resource.Id.get_last_location_button);
            latitude  = FindViewById <TextView>(Resource.Id.latitude);
            longitude = FindViewById <TextView>(Resource.Id.longitude);
            speed     = FindViewById <TextView>(Resource.Id.speed);
            provider  = FindViewById <TextView>(Resource.Id.provider);

            // UI to display location updates
            requestLocationUpdatesButton = FindViewById <Button>(Resource.Id.request_location_updates_button);
            latitude2        = FindViewById <TextView>(Resource.Id.latitude2);
            longitude2       = FindViewById <TextView>(Resource.Id.longitude2);
            speed2           = FindViewById <TextView>(Resource.Id.speed2);
            provider2        = FindViewById <TextView>(Resource.Id.provider2);
            fileLogger       = new FileLogger();
            _locationFetcher = new Timer();

            if (isGooglePlayServicesInstalled)
            {
                locationRequest = new LocationRequest()
                                  .SetPriority(LocationRequest.PriorityHighAccuracy)
                                  .SetInterval(1000)
                                  .SetFastestInterval(1000);
                locationCallback = new FusedLocationProviderCallback(this);

                fusedLocationProviderClient         = LocationServices.GetFusedLocationProviderClient(this);
                getLastLocationButton.Click        += GetLastLocationButtonOnClick;
                requestLocationUpdatesButton.Click += RequestLocationUpdatesButtonOnClick;
            }
            else
            {
                // If there is no Google Play Services installed, then this sample won't run.
                Snackbar.Make(rootLayout, Resource.String.missing_googleplayservices_terminating, Snackbar.LengthIndefinite)
                .SetAction(Resource.String.ok, delegate { FinishAndRemoveTask(); })
                .Show();
            }
            //_locationFetcher.Elapsed += new ElapsedEventHandler(Timer_Elapsed);
            //_locationFetcher.Interval = 1000;
            //_locationFetcher.Start();

            Start();
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_huaweilocation);
            //Button click listeners
            FindViewById(Resource.Id.location_requestLocationUpdatesWithCallback).SetOnClickListener(this);
            FindViewById(Resource.Id.location_removeLocationUpdatesWithcallback).SetOnClickListener(this);


            AddLogFragment();

            mFusedLocationProviderClient = LocationServices.GetFusedLocationProviderClient(this);
            mSettingsClient  = LocationServices.GetSettingsClient(this);
            mLocationRequest = new LocationRequest();
            // Sets the interval for location update (unit: Millisecond)
            mLocationRequest.SetInterval(5000);
            // Sets the priority
            mLocationRequest.SetPriority(LocationRequest.PriorityHighAccuracy);
            if (null == mLocationCallback)
            {
                mLocationCallback = new LocationCallbackImpl();
            }
            if (Android.Support.V4.Content.ContextCompat.CheckSelfPermission(this,
                                                                             Manifest.Permission.AccessFineLocation) != Permission.Granted &&
                Android.Support.V4.Content.ContextCompat.CheckSelfPermission(this,
                                                                             Manifest.Permission.AccessCoarseLocation) != Permission.Granted)
            {
                string[] strings =
                { Manifest.Permission.AccessFineLocation, Manifest.Permission.AccessCoarseLocation };
                ActivityCompat.RequestPermissions(this, strings, 1);
            }
        }
        public void RequestLocationUpdates(int priority, int requestType)
        {
            TestTip.Inst.ShowText("RequestLocationUpdatesWithCallback start");
            this.requestType             = requestType;
            mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(new Context());
            mSettingsClient  = LocationServices.getSettingsClient(new Context());
            mLocationRequest = new LocationRequest();
            mLocationRequest.setInterval(5000);
            mLocationRequest.setPriority(priority);
            // get LocationSettingsRequest
            LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
            builder.addLocationRequest(mLocationRequest);
            LocationSettingsRequest locationSettingsRequest = builder.build();

            Task task = mSettingsClient.checkLocationSettings(locationSettingsRequest);

            task.addOnSuccessListener(new LocationSuccessListener((AndroidJavaObject o) =>
            {
                switch (requestType)
                {
                case CALLBACK:
                    SetCallbackSuccess();
                    break;

                case INTENT:
                    SetIntentSuccess();
                    break;

                case LocationHD:
                    SetHDSuccess();
                    break;
                }
            }));
            task.addOnFailureListener(new HmsFailureListener((Exception e) => SetSettingsFailuer(e)));
        }
Example #26
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            // Set our view from the "main" layout resource
            SetContentView(P6Test.Resource.Layout.TestLocation);
            Plugin.CurrentActivity.CrossCurrentActivity.Current.Init(this, bundle);

            Instance = this;

            fusedLocationProviderClient = LocationServices.GetFusedLocationProviderClient(this);
            Dexter.WithActivity(this)
            .WithPermission(Manifest.Permission.AccessFineLocation)
            .WithListener(this)
            .Check();

            CreateNotificationChannel();
            Intent StartServiceIntent = new Intent(this, typeof(ForegroundMethod));

            StartServiceIntent.SetAction("Service.action.START_SERVICE");

            StartForegroundService(StartServiceIntent);


            /*FindViewById<Button>(P6Test.Resource.Id.LocationBtn).Click += (o, e) =>
             * {
             *  getLocation();
             * };
             *
             * FindViewById<Button>(P6Test.Resource.Id.resetButton).Click += (o, e) =>
             * {
             *  i = 0;
             * }; */
        }
Example #27
0
 public LocationService(Activity mainActivity)
 {
     this.mainActivity = mainActivity;
     locationProvider  = LocationServices.GetFusedLocationProviderClient(Application.Context);
     locationCallback  = new EdisonLocationCallback();
     locationCallback.LocationUpdated += OnLocationUpdated;
 }
Example #28
0
        // Lighthouse

        private async void StartLighthouse()
        {
            System.Diagnostics.Debug.WriteLine("StartLighthouse");

            // Initialize Estimote (TODO: Remove values when distributing)
            EstimoteSdk.Common.Config.Estimote.EnableDebugLogging(true);
            EstimoteSdk.Common.Config.Estimote.Initialize(Application.Context, LHPEEstimoteId, LHPEEstimoteKey);

            // Initialize GPS Location
            if (IsPlayServicesAvailable())
            {
                locationRequest = new LocationRequest()
                                  .SetPriority(LocationRequest.PriorityBalancedPowerAccuracy)
                                  .SetInterval(1000)
                                  .SetFastestInterval(locationFrequencySeconds * 1000);
                locationCallback = new FusedLocationProviderCallback((MainActivity)CrossCurrentActivity.Current.Activity);

                fusedLocationProviderClient = LocationServices.GetFusedLocationProviderClient(this);
            }

            // Initialize lhpe
            await Lighthouse.Start(LHPEEnvironment, LHPEAppId, LHPEAppKey);

            // Stop Loading Activity, Start Main Activity
            var intent = new Intent(this, typeof(LHPEXamarinSample.Droid.MainActivity));

            StartActivity(intent);
        }
        /*
         * Start receiving location updates
         */
        void ILocationManager.StartLocationUpdates()
        {
            client = LocationServices.GetFusedLocationProviderClient(CrossCurrentActivity.Current.Activity);
            LocationRequest request = new LocationRequest().SetPriority(LocationRequest.PriorityHighAccuracy).SetInterval(1000 * 5).SetFastestInterval(1000 * 2);

            locationCallback = new ClientLocationCallback(CrossCurrentActivity.Current.Activity);
            client.RequestLocationUpdatesAsync(request, locationCallback);
        }
Example #30
0
        public GpsManagerImpl(AndroidContext context)
        {
            this.context = context;
            this.client  = LocationServices.GetFusedLocationProviderClient(this.context.AppContext);

            //if (this.IsListening)
            //    this.StartListenerInternal(); // fire and forget
        }