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; } }
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; } }