Exemplo n.º 1
0
        protected override void OnStart()
        {
            try
            {
                base.OnStart();
                if (ContextCompat.CheckSelfPermission(this, Manifest.Permission.AccessFineLocation) != Android.Content.PM.Permission.Granted)
                {
                    RequestPermissions(new[] { Manifest.Permission.AccessCoarseLocation, Manifest.Permission.AccessFineLocation }, 0);
                }

                if (PackageManager.CheckPermission(Manifest.Permission.ReadExternalStorage, PackageName) != Permission.Granted &&
                    PackageManager.CheckPermission(Manifest.Permission.WriteExternalStorage, PackageName) != Permission.Granted)
                {
                    var permissions = new[] { Manifest.Permission.ReadExternalStorage, Manifest.Permission.WriteExternalStorage };
                    RequestPermissions(permissions, 1);
                }
            }
            catch (Exception e)
            {
                ErrorSender.SendError(this, e.ToString());
                throw;
            }
        }
Exemplo n.º 2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            try
            {
                base.OnCreate(savedInstanceState);
                Xamarin.Essentials.Platform.Init(this, savedInstanceState);
                SetContentView(Resource.Layout.main_activity);
                OnNewIntent(Intent);
                Window.SetFlags(WindowManagerFlags.KeepScreenOn, WindowManagerFlags.KeepScreenOn);

                if (savedInstanceState != null)
                {
                    _isStarted = savedInstanceState.GetBoolean(Constants.SERVICE_STARTED_KEY);
                }

                _sendButton        = FindViewById <Button>(Resource.Id.sendData);
                _sendButton.Click += SendButtonOnClick;

                _stateTextView = FindViewById <TextView>(Resource.Id.state);
                Accelerometer.ReadingChanged += Accelerometer_ReadingChanged;

                _startServiceIntent = new Intent(this, typeof(TrackingService));
                _startServiceIntent.SetAction(Constants.ACTION_START_SERVICE);

                _stopServiceIntent = new Intent(this, typeof(TrackingService));
                _stopServiceIntent.SetAction(Constants.ACTION_STOP_SERVICE);

                _startServiceButton = FindViewById <Button>(Resource.Id.startTrack);
                _stopServiceButton  = FindViewById <Button>(Resource.Id.stopTrack);

                if (_isStarted)
                {
                    _stopServiceButton.Click   += StopServiceButtonOnClick;
                    _stopServiceButton.Enabled  = true;
                    _startServiceButton.Enabled = false;
                    _sendButton.Enabled         = false;

                    try
                    {
                        Accelerometer.Start(SensorSpeed.UI);
                    }
                    catch (Exception ex)
                    {
                        Log.Error(Tag, ex.ToString());
                    }
                }
                else
                {
                    _startServiceButton.Click  += StartServiceButtonOnClick;
                    _startServiceButton.Enabled = true;
                    _stopServiceButton.Enabled  = false;
                    _sendButton.Enabled         = true;

                    try
                    {
                        Accelerometer.Stop();
                        _stateTextView.Text = string.Empty;
                    }
                    catch (Exception ex)
                    {
                        Log.Error(Tag, ex.ToString());
                    }
                }
            }
            catch (Exception e)
            {
                ErrorSender.SendError(this, e.ToString());
                throw;
            }
        }