예제 #1
0
        public void StartLocationUpdates()
        {
            var task = mSettingsClient.CheckLocationSettings(mLocationSettingsRequest);

            task.AddOnSuccessListener(this, new StartLocationUpdatesOnSuccessListener {
                Activity = this
            });
            task.AddOnFailureListener(this, new StartLocationUpdatesOnFailureListener {
                Activity = this
            });
        }
        public void RequestLocationUpdatesWithCallback()
        {
            LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
            builder.AddLocationRequest(locationRequest);
            LocationSettingsRequest locationSettingsRequest = builder.Build();

            //checking device settings
            Task locationSettingsTask = locationSettings.CheckLocationSettings(locationSettingsRequest);

            locationSettingsTask.AddOnSuccessListener(new OnCallbackSettingsSuccessListener(this, fusedLocationProviderClient, locationRequest, locationCallback)).
            AddOnFailureListener(new OnCallbackSettingsFailureListener(this));
        }
        private void RequestLocationUpdatesWithIntent()
        {
            LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
            builder.AddLocationRequest(locationRequest);
            LocationSettingsRequest locationSettingsRequest = builder.Build();

            //checking device settings
            Task locationSettingsTask = settingsClient.CheckLocationSettings(locationSettingsRequest);

            pendingIntent = CreatePendingIntent();
            locationSettingsTask.AddOnSuccessListener(new OnSettingsSuccessListener(this, fusedLocationProviderClient, locationRequest, pendingIntent)).
            AddOnFailureListener(new OnSettingsFailureListener(this));
        }
예제 #4
0
 private void RequestLocationUpdatesWithCallback()
 {
     try
     {
         LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
         builder.AddLocationRequest(mLocationRequest);
         LocationSettingsRequest locationSettingsRequest = builder.Build();
         // Before requesting location update, invoke checkLocationSettings to check device settings.
         Task locationSettingsResponseTask = mSettingsClient.CheckLocationSettings(locationSettingsRequest);
         locationSettingsResponseTask
         .AddOnSuccessListener(new LocCallSettOnSuccessListenerImpl(mFusedLocationProviderClient, mLocationRequest, mLocationCallback))
         .AddOnFailureListener(new LocCallSettOnFailureListenerImpl(this));
     }
     catch (Exception e)
     {
         LocationLog.Error(TAG, "requestLocationUpdatesWithCallback exception:" + e.Message);
     }
 }
예제 #5
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.activity_test);

            _startBtn      = FindViewById <Button>(Resource.Id.startBtn);
            _locationTv    = FindViewById <TextView>(Resource.Id.locationTv);
            _loginBtn      = FindViewById <Button>(Resource.Id.loginBtn);
            _getRecordsBtn = FindViewById <Button>(Resource.Id.getRecordsBtn);

            _startBtn.Enabled = false;
            _loginBtn.Enabled = false;

            if (Build.VERSION.SdkInt >= BuildVersionCodes.Q)
            {
                CheckPermission(Android.Manifest.Permission.AccessBackgroundLocation,
                                Android.Manifest.Permission.AccessFineLocation,
                                Android.Manifest.Permission.AccessCoarseLocation,
                                Android.Manifest.Permission.ControlLocationUpdates,
                                Android.Manifest.Permission.Camera,
                                Android.Manifest.Permission.ReadExternalStorage,
                                Android.Manifest.Permission.WriteExternalStorage);
            }
            else
            {
                CheckPermission(Android.Manifest.Permission.AccessFineLocation,
                                Android.Manifest.Permission.AccessCoarseLocation,
                                Android.Manifest.Permission.ControlLocationUpdates,
                                Android.Manifest.Permission.Camera,
                                Android.Manifest.Permission.ReadExternalStorage,
                                Android.Manifest.Permission.WriteExternalStorage);
            }

            _startBtn.Click += delegate
            {
                LocationRequest locationRequest = LocationRequest.Create();
                locationRequest.SetInterval(10000);
                locationRequest.SetFastestInterval(5000);
                locationRequest.SetPriority(LocationRequest.PriorityHighAccuracy);

                LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
                builder.AddLocationRequest(locationRequest);

                SettingsClient client = LocationServices.GetSettingsClient(this);
                var            task   = client.CheckLocationSettings(builder.Build())
                                        .AddOnSuccessListener(new SuccessLisenter(async(obj) =>
                {
                    var userIds = new Dictionary <string, string>();

                    userIds.Add(_userId, _userId);

                    var adding = await ServiceInstances.TripRepository.InsertAsync(new Common.Models.Trip()
                    {
                        Description = "Test trips",
                        UserIds     = userIds
                    });

                    if (adding != null)
                    {
                        _tripId = adding.Id;
                        StartService(_tripId, _userId);
                    }
                })).AddOnFailureListener(new FailureLisenter((ex) =>
                {
                    if (ex is ResolvableApiException)
                    {
                        try
                        {
                            ResolvableApiException resolvable = (ResolvableApiException)ex;
                            resolvable.StartResolutionForResult(this,
                                                                100);
                        }
                        catch (IntentSender.SendIntentException e2x)
                        {
                            // Ignore the error.
                        }
                    }
                }));
            };

            _loginBtn.Click += async delegate
            {
                var authProvider = new FirebaseAuthProvider(new FirebaseConfig("AIzaSyCxjza0PW9fg6y4tPlljkP-iBSwOC0XY6g"));

                var login = await authProvider.SignInWithEmailAndPasswordAsync("*****@*****.**", "Hello_2020");

                if (login != null)
                {
                    _userId = login.User.LocalId;

                    var firebase = new FirebaseClient(
                        "https://friendloc-98ed3-default-rtdb.firebaseio.com/",
                        new FirebaseOptions
                    {
                        AuthTokenAsyncFactory = () => Task.FromResult(login.FirebaseToken)
                    });

                    ServiceInstances.TripRepository.Init(firebase);
                    ServiceInstances.UserRepository.Init(firebase);

                    _startBtn.Enabled = true;
                }
            };

            _getRecordsBtn.Click += async delegate
            {
                var res = await ServiceInstances.TripRepository.GetById(_tripId);

                Console.WriteLine(res.Locations.Values.ToList()[0].CreatedTime);
            };
        }