protected override async Task OnReceiveAsync(Context?context, Intent?intent)
 {
     if (ActivityRecognitionResult.HasResult(intent) && Process != null)
     {
         var result = ActivityRecognitionResult.ExtractResult(intent);
         await Process(result);
     }
 }
Exemple #2
0
 protected override void OnHandleIntent(Intent intent)
 {
     UpdateMinConfidence();
     if (ActivityRecognitionResult.HasResult(intent))
     {
         HandleActivityRecognitionResult(intent);
     }
 }
Exemple #3
0
        public override void OnReceive(Context context, Intent intent) => this.Execute(async() =>
        {
            // DELETE FROM motion_activity WHERE Timestamp < DateTimeOffset.UtcNow.AddDays(-30).Ticks
            if (!ActivityRecognitionResult.HasResult(intent))
            {
                return;
            }

            var result = ActivityRecognitionResult.ExtractResult(intent);
            var type   = MotionActivityType.Unknown;

            foreach (var activity in result.ProbableActivities)
            {
                switch (activity.Type)
                {
                case DetectedActivity.InVehicle:
                    type |= MotionActivityType.Automotive;
                    break;

                case DetectedActivity.OnBicycle:
                    type |= MotionActivityType.Cycling;
                    break;

                case DetectedActivity.OnFoot:
                    type |= MotionActivityType.Walking;
                    break;

                case DetectedActivity.Running:
                    type |= MotionActivityType.Running;
                    break;

                case DetectedActivity.Still:
                    type |= MotionActivityType.Stationary;
                    break;

                case DetectedActivity.Walking:
                    type |= MotionActivityType.Walking;
                    break;
                }
            }
            var confidence = this.ToConfidence(result.MostProbableActivity.Confidence);
            var timestamp  = DateTimeOffset.UtcNow.ToUnixTimeSeconds();

            await this.database.ExecuteNonQuery(
                $"INSERT INTO motion_activity(Event, Confidence, Timestamp) VALUES ({(int)type}, {(int)confidence}, {timestamp})"
                );
            this.messageBus.Publish(new MotionActivityEvent(type, confidence, DateTimeOffset.UtcNow));
        });
Exemple #4
0
        bool OnHandleIntent(Intent intent)
        {
            if (intent != null)
            {
                if (intent.Action == FinishTripAction)
                {
                    FinishTrip();
                }
                else if (ActivityRecognitionResult.HasResult(intent))
                {
                    HandleActivityRecognition(intent);
                }
                else if (intent.HasExtra(FusedLocationProviderApi.KeyLocationChanged))
                {
                    HandleLocationUpdate(intent);
                }
            }

            return(currentBikingState != BikingState.NotBiking);
        }
Exemple #5
0
        public override void OnReceive(Context context, Intent intent)
        {
            base.OnReceive(Application.Context, intent);

            if (ActivityRecognitionResult.HasResult(intent))
            {
                ActivityRecognitionResult result = ActivityRecognitionResult.ExtractResult(intent);
                if (result != null)
                {
                    var motion = result.MostProbableActivity.GetMotionType();
                    if (motion != Core.Models.MotionType.Unknown)
                    {
                        Mvx.Resolve <IMotionActivity>().MotionType = motion;
                    }

                    //new Handler(context.MainLooper).Post(() =>
                    //{
                    //    Toast.MakeText(context, motion.ToString(), ToastLength.Short).Show();
                    //});
                }
            }
        }