static DataReadRequest queryStepsData()
        {
            DateTime endTime = DateTime.Now;
            //DateTime startTime = endTime.Subtract(TimeSpan.FromDays(7));
            DateTime startTime        = DateTime.Today;
            long     endTimeElapsed   = GetMsSinceEpochAsLong(endTime);
            long     startTimeElapsed = GetMsSinceEpochAsLong(startTime);

            Log.Info("googleFitFetch", "Range Start: " + startTime.ToString(DATE_FORMAT));
            Log.Info("googleFitFetch", "Range End: " + endTime.ToString(DATE_FORMAT));
            DataSource source = new DataSource.Builder()
                                .SetAppPackageName("com.google.android.gms")
                                .SetDataType(Android.Gms.Fitness.Data.DataType.TypeStepCountDelta)
                                .SetType(DataSource.TypeDerived)
                                .SetStreamName("estimated_steps")
                                .Build();

            var readRequest = new DataReadRequest.Builder()
                              .Aggregate(source, Android.Gms.Fitness.Data.DataType.AggregateStepCountDelta)
                              .BucketByTime(1, TimeUnit.Days)
                              .SetTimeRange(startTimeElapsed, endTimeElapsed, TimeUnit.Milliseconds)
                              .Build();

            return(readRequest);
        }
Exemplo n.º 2
0
        DataSet InsertFitnessData()
        {
            Log.Info(TAG, "Creating a new data insert request");

            // Set a start and end time for our data, using a start time of 1 hour before this moment.
            DateTime endTime          = DateTime.Now;
            DateTime startTime        = endTime.Subtract(TimeSpan.FromHours(1));
            long     endTimeElapsed   = GetMsSinceEpochAsLong(endTime);
            long     startTimeElapsed = GetMsSinceEpochAsLong(startTime);

            // Create a data source
            var dataSource = new DataSource.Builder()
                             .SetAppPackageName(this)
                             .SetDataType(DataType.TypeStepCountDelta)
                             .SetName(TAG + " - step count")
                             .SetType(DataSource.TypeRaw)
                             .Build();

            // Create a data set
            const int stepCountDelta = 1000;
            var       dataSet        = DataSet.Create(dataSource);
            DataPoint dataPoint      = dataSet.CreateDataPoint()
                                       .SetTimeInterval(startTimeElapsed, endTimeElapsed, TimeUnit.Milliseconds);

            dataPoint.GetValue(Field.FieldSteps).SetInt(stepCountDelta);
            dataSet.Add(dataPoint);

            return(dataSet);
        }
Exemplo n.º 3
0
        DataSet InsertFitnessData()
        {
            Log.Info(TAG, "Creating a new data insert request");

            var epoch     = new DateTime(1970, 1, 1);
            var now       = DateTime.UtcNow;
            var endTime   = (now - epoch).TotalMilliseconds;
            var startTime = (now.Subtract(TimeSpan.FromHours(1)) - epoch).TotalMilliseconds;

            // Create a data source
            var dataSource = new DataSource.Builder()
                             .SetAppPackageName(this)
                             .SetDataType(DataType.TypeStepCountDelta)
                             .SetName(TAG + " - step count")
                             .SetType(DataSource.TypeRaw)
                             .Build();

            // Create a data set
            const int stepCountDelta = 1000;
            var       dataSet        = DataSet.Create(dataSource);
            var       dataPoint      = dataSet.CreateDataPoint()
                                       .SetTimeInterval((long)startTime, (long)endTime, TimeUnit.Milliseconds);

            dataPoint.GetValue(Field.FieldSteps).SetInt(stepCountDelta);
            dataSet.Add(dataPoint);

            return(dataSet);
        }
Exemplo n.º 4
0
        private async Task testSteps3()
        {
            DataSource dataSource = new DataSource.Builder()
                                    .SetAppPackageName("com.google.android.gms")
                                    .SetDataType(DataType.TypeStepCountDelta)
                                    //.SetDataType(DataType.AggregateStepCountDelta)
                                    .SetType(DataSource.TypeDerived)
                                    .SetStreamName("estimated_steps")
                                    .Build();

            var cal = Calendar.Instance;
            var now = new Date();

            cal.Time = now;
            var endTime = cal.TimeInMillis;

            cal.Add(CalendarField.WeekOfYear, -1);
            var startTime = cal.TimeInMillis;

            DataReadRequest readRequest = new DataReadRequest.Builder()
                                          //.Aggregate(DataType.TypeStepCountDelta, DataType.AggregateStepCountDelta)
                                          //.Aggregate(dataSource, DataType.AggregateStepCountDelta)
                                          .Aggregate(dataSource, DataType.TypeStepCountDelta)
                                          .BucketByTime(1, TimeUnit.Days)
                                          .SetTimeRange(startTime, endTime, TimeUnit.Milliseconds)
                                          .Build();

            var dataReadResult = await FitnessClass.HistoryApi.ReadDataAsync(client, readRequest);

            if (dataReadResult.Status.IsSuccess)
            {
                foreach (var item in dataReadResult.DataSets)
                {
                    var a = item;
                }

                foreach (Bucket item in dataReadResult.Buckets)
                {
                    var t = item.DataSets;
                    var a = item;

                    foreach (var ds in item.DataSets)
                    {
                        foreach (var dp in ds.DataPoints)
                        {
                            foreach (var field in dp.DataType.Fields)
                            {
                                var b = dp.GetValue(field);
                            }
                        }
                    }
                }
            }
        }
        public async void AddStepCountEntry(StepCountEntry entry)
        {
            Log.Info(TAG, "Creating a new data insert request");

            // Set a start and end time for our data, using a start time of 1 hour before this moment.
            DateTime endTime          = DateTime.Now;
            DateTime startTime        = endTime.Subtract(TimeSpan.FromHours(1));
            long     endTimeElapsed   = GetMsSinceEpochAsLong(endTime);
            long     startTimeElapsed = GetMsSinceEpochAsLong(startTime);

            // Create a data source
            var dataSource = new DataSource.Builder()
                             .SetAppPackageName(this._activity)
                             .SetDataType(Android.Gms.Fitness.Data.DataType.TypeStepCountDelta)
                             .SetName(TAG + " - step count")
                             .SetType(DataSource.TypeRaw)
                             .Build();

            // Create a data set
            //const int stepCountDelta = 1000;
            var       dataSet   = DataSet.Create(dataSource);
            DataPoint dataPoint = dataSet.CreateDataPoint()
                                  .SetTimeInterval(startTimeElapsed, endTimeElapsed, TimeUnit.Milliseconds);

            dataPoint.GetValue(Field.FieldSteps).SetInt(Convert.ToInt32(entry.Count));
            dataSet.Add(dataPoint);

            Log.Info(TAG, "Inserting the dataset in the History API");
            var insertStatus = await FitnessClass.HistoryApi.InsertDataAsync(mClient, dataSet);

            if (!insertStatus.IsSuccess)
            {
                Log.Info(TAG, "There was a problem inserting the dataset.");
                return;
            }

            Log.Info(TAG, "Data insert was successful!");

            RefreshHealthStateData();
        }
Exemplo n.º 6
0
        SessionInsertRequest InsertFitnessSession()
        {
            Log.Info(TAG, "Creating a new session for an afternoon run");

            var  epoch         = new DateTime(1970, 1, 1);
            var  now           = DateTime.UtcNow;
            long endTime       = (long)(now - epoch).TotalMilliseconds;
            long endWalkTime   = (long)(now.Subtract(TimeSpan.FromDays(10)) - epoch).TotalMilliseconds;
            long startWalkTime = (long)(now.Subtract(TimeSpan.FromDays(20)) - epoch).TotalMilliseconds;
            long startTime     = (long)(now.Subtract(TimeSpan.FromMinutes(30)) - epoch).TotalMilliseconds;

            var speedDataSource = new DataSource.Builder()
                                  .SetAppPackageName(PackageName)
                                  .SetDataType(DataType.TypeSpeed)
                                  .SetName(SAMPLE_SESSION_NAME + "- speed")
                                  .SetType(DataSource.TypeRaw)
                                  .Build();

            const float runSpeedMps  = 10;
            const float walkSpeedMps = 3;
            // Create a data set of the run speeds to include in the session.
            DataSet speedDataSet = DataSet.Create(speedDataSource);

            DataPoint firstRunSpeed = speedDataSet.CreateDataPoint()
                                      .SetTimeInterval(startTime, startWalkTime, TimeUnit.Milliseconds);

            firstRunSpeed.GetValue(Field.FieldSpeed).SetFloat(runSpeedMps);
            speedDataSet.Add(firstRunSpeed);

            DataPoint walkSpeed = speedDataSet.CreateDataPoint()
                                  .SetTimeInterval(startWalkTime, endWalkTime, TimeUnit.Milliseconds);

            walkSpeed.GetValue(Field.FieldSpeed).SetFloat(walkSpeedMps);
            speedDataSet.Add(walkSpeed);

            DataPoint secondRunSpeed = speedDataSet.CreateDataPoint()
                                       .SetTimeInterval(endWalkTime, endTime, TimeUnit.Milliseconds);

            secondRunSpeed.GetValue(Field.FieldSpeed).SetFloat(runSpeedMps);
            speedDataSet.Add(secondRunSpeed);

            // [START build_insert_session_request_with_activity_segments]
            // Create a second DataSet of ActivitySegments to indicate the runner took a 10-minute walk
            // in the middle of the run.
            var activitySegmentDataSource = new DataSource.Builder()
                                            .SetAppPackageName(PackageName)
                                            .SetDataType(DataType.TypeActivitySegment)
                                            .SetName(SAMPLE_SESSION_NAME + "-activity segments")
                                            .SetType(DataSource.TypeRaw)
                                            .Build();
            DataSet activitySegments = DataSet.Create(activitySegmentDataSource);

            DataPoint firstRunningDp = activitySegments.CreateDataPoint()
                                       .SetTimeInterval(startTime, startWalkTime, TimeUnit.Milliseconds);

            firstRunningDp.GetValue(Field.FieldActivity).SetActivity(FitnessActivities.Running);
            activitySegments.Add(firstRunningDp);

            DataPoint walkingDp = activitySegments.CreateDataPoint()
                                  .SetTimeInterval(startWalkTime, endWalkTime, TimeUnit.Milliseconds);

            walkingDp.GetValue(Field.FieldActivity).SetActivity(FitnessActivities.Walking);
            activitySegments.Add(walkingDp);

            DataPoint secondRunningDp = activitySegments.CreateDataPoint()
                                        .SetTimeInterval(endWalkTime, endTime, TimeUnit.Milliseconds);

            secondRunningDp.GetValue(Field.FieldActivity).SetActivity(FitnessActivities.Running);
            activitySegments.Add(secondRunningDp);

            var session = new Session.Builder()
                          .SetName(SAMPLE_SESSION_NAME)
                          .SetDescription("Long run around Shoreline Park")
                          .SetIdentifier("UniqueIdentifierHere")
                          .SetActivity(FitnessActivities.Running)
                          .SetStartTime(startTime, TimeUnit.Milliseconds)
                          .SetEndTime(endTime, TimeUnit.Milliseconds)
                          .Build();

            var insertRequest = new SessionInsertRequest.Builder()
                                .SetSession(session)
                                .AddDataSet(speedDataSet)
                                .AddDataSet(activitySegments)
                                .Build();

            return(insertRequest);
        }
Exemplo n.º 7
0
		DataSet InsertFitnessData ()
		{
			Log.Info (TAG, "Creating a new data insert request");

			// Set a start and end time for our data, using a start time of 1 hour before this moment.
			DateTime endTime = DateTime.Now;
			DateTime startTime = endTime.Subtract (TimeSpan.FromHours (1));
			long endTimeElapsed = GetMsSinceEpochAsLong (endTime);
			long startTimeElapsed = GetMsSinceEpochAsLong (startTime);

			// Create a data source
			var dataSource = new DataSource.Builder ()
				.SetAppPackageName (this)
				.SetDataType (DataType.TypeStepCountDelta)
				.SetName (TAG + " - step count")
				.SetType (DataSource.TypeRaw)
				.Build ();

			// Create a data set
			const int stepCountDelta = 1000;
			var dataSet = DataSet.Create (dataSource);
			DataPoint dataPoint = dataSet.CreateDataPoint ()
				.SetTimeInterval (startTimeElapsed, endTimeElapsed, TimeUnit.Milliseconds);
			dataPoint.GetValue (Field.FieldSteps).SetInt (stepCountDelta);
			dataSet.Add (dataPoint);

			return dataSet;
		}
Exemplo n.º 8
0
		SessionInsertRequest InsertFitnessSession()
		{
			Log.Info(TAG, "Creating a new session for an afternoon run");

			var epoch = new DateTime (1970, 1, 1);
			var now = DateTime.UtcNow;
			long endTime = (long)(now - epoch).TotalMilliseconds;
			long endWalkTime = (long)(now.Subtract (TimeSpan.FromMinutes (10)) - epoch).TotalMilliseconds;
			long startWalkTime = (long)(now.Subtract (TimeSpan.FromMinutes (20)) - epoch).TotalMilliseconds;
			long startTime = (long)(now.Subtract (TimeSpan.FromMinutes (30)) - epoch).TotalMilliseconds;

			var speedDataSource = new DataSource.Builder()
				.SetAppPackageName (PackageName)
				.SetDataType (DataType.TypeSpeed)
				.SetName (SAMPLE_SESSION_NAME + "- speed")
				.SetType (DataSource.TypeRaw)
				.Build ();

			const float runSpeedMps = 10;
			const float walkSpeedMps = 3;
			// Create a data set of the run speeds to include in the session.
			DataSet speedDataSet = DataSet.Create (speedDataSource);

			DataPoint firstRunSpeed = speedDataSet.CreateDataPoint ()
				.SetTimeInterval (startTime, startWalkTime, TimeUnit.Milliseconds);
			firstRunSpeed.GetValue (Field.FieldSpeed).SetFloat (runSpeedMps);
			speedDataSet.Add (firstRunSpeed);

			DataPoint walkSpeed = speedDataSet.CreateDataPoint ()
				.SetTimeInterval (startWalkTime, endWalkTime, TimeUnit.Milliseconds);
			walkSpeed.GetValue (Field.FieldSpeed).SetFloat (walkSpeedMps);
			speedDataSet.Add (walkSpeed);

			DataPoint secondRunSpeed = speedDataSet.CreateDataPoint ()
				.SetTimeInterval (endWalkTime, endTime, TimeUnit.Milliseconds);
			secondRunSpeed.GetValue (Field.FieldSpeed).SetFloat(runSpeedMps);
			speedDataSet.Add (secondRunSpeed);

			// [START build_insert_session_request_with_activity_segments]
			// Create a second DataSet of ActivitySegments to indicate the runner took a 10-minute walk
			// in the middle of the run.
			var activitySegmentDataSource = new DataSource.Builder()
				.SetAppPackageName (PackageName)
				.SetDataType (DataType.TypeActivitySegment)
				.SetName (SAMPLE_SESSION_NAME + "-activity segments")
				.SetType (DataSource.TypeRaw)
				.Build ();
			DataSet activitySegments = DataSet.Create (activitySegmentDataSource);

			DataPoint firstRunningDp = activitySegments.CreateDataPoint ()
				.SetTimeInterval (startTime, startWalkTime, TimeUnit.Milliseconds);
			firstRunningDp.GetValue (Field.FieldActivity).SetActivity (FitnessActivities.Running);
			activitySegments.Add (firstRunningDp);

			DataPoint walkingDp = activitySegments.CreateDataPoint ()
				.SetTimeInterval (startWalkTime, endWalkTime, TimeUnit.Milliseconds);
			walkingDp.GetValue (Field.FieldActivity).SetActivity (FitnessActivities.Walking);
			activitySegments.Add (walkingDp);

			DataPoint secondRunningDp = activitySegments.CreateDataPoint ()
				.SetTimeInterval (endWalkTime, endTime, TimeUnit.Milliseconds);
			secondRunningDp.GetValue (Field.FieldActivity).SetActivity (FitnessActivities.Running);
			activitySegments.Add (secondRunningDp);

			var session = new Session.Builder ()
				.SetName (SAMPLE_SESSION_NAME)
				.SetDescription ("Long run around Shoreline Park")
				.SetIdentifier ("UniqueIdentifierHere")
				.SetActivity (FitnessActivities.Running)
				.SetStartTime (startTime, TimeUnit.Milliseconds)
				.SetEndTime (endTime, TimeUnit.Milliseconds)
				.Build ();

			var insertRequest = new SessionInsertRequest.Builder()
				.SetSession (session)
				.AddDataSet (speedDataSet)
				.AddDataSet (activitySegments)
				.Build ();

			return insertRequest;
		}
Exemplo n.º 9
0
        private async Task testSteps2()
        {
            DataSource dataSource = new DataSource.Builder()
                                    .SetAppPackageName("com.google.android.gms")
                                    .SetDataType(DataType.TypeStepCountDelta)
                                    //.SetDataType(DataType.AggregateStepCountDelta)
                                    .SetType(DataSource.TypeDerived)
                                    .SetStreamName("estimated_steps")
                                    .Build();

            var cal = Calendar.Instance;
            var now = new Date();

            cal.Time = now;
            var endTime = cal.TimeInMillis;

            cal.Add(CalendarField.WeekOfYear, -1);
            var startTime = cal.TimeInMillis;

            DataReadRequest readRequest = new DataReadRequest.Builder()
                                          //.Aggregate(DataType.TypeStepCountDelta, DataType.AggregateStepCountDelta)
                                          .Aggregate(dataSource, DataType.AggregateStepCountDelta)
                                          .BucketByTime(1, TimeUnit.Days)
                                          .SetTimeRange(startTime, endTime, TimeUnit.Milliseconds)
                                          .Build();

            var dataReadResult = await FitnessClass.HistoryApi.ReadDataAsync(client, readRequest);

            //foreach (var dataSet in dataReadResult.DataSets)
            //{
            //    var d = dataSet.DataType;
            //}

            //var test = dataReadResult.GetDataSet(DataType.TypeStepCountDelta);

            //var aggregatedSteps = dataReadResult.GetDataSet(DataType.AggregateStepCountDelta);

            //foreach (var dataPoint in aggregatedSteps.DataPoints)
            //{
            //    var a = dataPoint.GetValue(Field.FieldSteps);
            //}

            //foreach (var bucket in dataReadResult.Buckets)
            //{
            //    var dataSet = bucket.DataSets[0];

            //    var activity = bucket.Activity;
            //    var bucketType = bucket.BucketType;
            //}

            DataSet test     = dataReadResult.GetDataSet(DataType.TypeStepCountDelta);
            var     stepData = dataReadResult.GetDataSet(DataType.AggregateStepCountDelta);

            foreach (var dp in test.DataPoints)
            {
                foreach (var field in dp.DataType.Fields)
                {
                    var a = dp.GetValue(field);
                }
            }

            int totalSteps = 0;

            foreach (DataPoint dp in stepData.DataPoints)
            {
                foreach (Field field in dp.DataType.Fields)
                {
                    int steps = dp.GetValue(field).AsInt();

                    totalSteps += steps;
                }
            }
        }