コード例 #1
0
 void ShowPedometerData(CMPedometerData data, NSError nsError)
 {
     if (data != null)
     {
         text.text = string.Format("start date: {0}\nend date: {1}\n number of steps: {2}\ndistance: {3}",
                                   data.StartDate, data.EndDate, data.NumberOfSteps, data.Distance);
         if (data.HasCurrentPase)
         {
             text.text += "\ncurrent pase: " + data.CurrentPace;
         }
         if (data.HasCurrentCadence)
         {
             text.text += "\ncurrent cadence: " + data.CurrentCadence;
         }
         if (data.HasFloorsAscended)
         {
             text.text += "\nfloors ascended: " + data.FloorsAscended;
         }
         if (data.HasFloorsDescended)
         {
             text.text += "\nfloors descended: " + data.FloorsDescended;
         }
     }
     else
     {
         text.text = nsError.LocalizedDescription;
     }
 }
コード例 #2
0
        /// <summary>
        /// Gets the current step information from the pedometer sensor.
        /// </summary>
        /// <returns></returns>
        public IReadOnlyDictionary <PedometerStepKind, PedometerReading> GetCurrentReadings()
        {
#if WINDOWS_UWP || WINDOWS_APP || WINDOWS_PHONE_APP
            var rawReadings = _pedometer.GetCurrentReadings();
            Dictionary <PedometerStepKind, PedometerReading> readings = new Dictionary <Sensors.PedometerStepKind, Sensors.PedometerReading>();
            foreach (KeyValuePair <Windows.Devices.Sensors.PedometerStepKind, Windows.Devices.Sensors.PedometerReading> r in rawReadings)
            {
                readings.Add((PedometerStepKind)((int)r.Key), r.Value);
            }

            return(readings);
#elif __IOS__
            Dictionary <PedometerStepKind, PedometerReading> readings = new Dictionary <PedometerStepKind, PedometerReading>();
            _lastData = null;
            _pedometer.QueryPedometerData(NSDate.FromTimeIntervalSince1970(DateTimeOffset.Now.Subtract(DateTimeOffset.Now.TimeOfDay).ToUnixTimeSeconds()), NSDate.FromTimeIntervalSince1970(DateTimeOffset.Now.ToUnixTimeSeconds()), PedometerDataHandler);
            _handle.WaitOne();
            if (_lastData != null)
            {
                readings.Add(PedometerStepKind.Unknown, new PedometerReading(_lastData.NumberOfSteps.Int32Value, TimeSpan.FromSeconds(_lastData.EndDate.SecondsSinceReferenceDate - _lastData.StartDate.SecondsSinceReferenceDate), PedometerStepKind.Unknown, DateTimeOffsetHelper.FromNSDate(_lastData.EndDate)));
            }

            return(readings);
#elif TIZEN
            Dictionary <PedometerStepKind, PedometerReading> readings = new Dictionary <Sensors.PedometerStepKind, Sensors.PedometerReading>();
            readings.Add(PedometerStepKind.Running, new PedometerReading((int)_pedometer.RunStepCount, TimeSpan.Zero, PedometerStepKind.Running, DateTimeOffset.Now));
            readings.Add(PedometerStepKind.Walking, new PedometerReading((int)_pedometer.WalkStepCount, TimeSpan.Zero, PedometerStepKind.Walking, DateTimeOffset.Now));
            return(readings);
#else
            throw new PlatformNotSupportedException();
#endif
        }
コード例 #3
0
        protected void CallbackQueryPedometerData(long callbackId, CMPedometerData data, NSError error)
        {
            var callback = queryPedometerDataCallbackDict [callbackId];

            queryPedometerDataCallbackDict.Remove(callbackId);
            callback(data, error);
        }
コード例 #4
0
        void SavePedometerData(CMPedometerData pedometerData)
        {
            recentPedometerData.Insert(0, pedometerData);

            if (recentPedometerData.Count > MotionManager.MaxPedometerSamples)
            {
                recentPedometerData.RemoveAt(recentPedometerData.Count - 1);
            }
        }
コード例 #5
0
 void UpdatePedometerData(CMPedometerData data, NSError nsError)
 {
     if (data != null)
     {
         PlayerPrefs.SetInt("Steps", data.NumberOfSteps);
     }
     else
     {
         PlayerPrefs.SetInt("Steps", 0);
         Debug.Log("Cannot fetch data, setting steps to 0");
     }
 }
コード例 #6
0
 void UpdatePedometerData(CMPedometerData data, NSError nsError)
 {
     if (data != null)
     {
         steps    = data.NumberOfSteps;
         distance = data.Distance;
     }
     else
     {
         steps    = 0;
         distance = 0;
     }
 }
コード例 #7
0
ファイル: StepManger_iOS.cs プロジェクト: k-toshi/Beers
 private void UpdateStepCounts(CMPedometerData pedometerData, NSError error)
 {
     if (error == null)
     {
         if (hasCountTagerArea)
         {
             UpdateStepCountsWithTargetArea(pedometerData.NumberOfSteps.Int32Value);
         }
         else
         {
             stepCounts = pedometerData.NumberOfSteps.Int32Value;
         }
     }
 }
コード例 #8
0
        private void OnPedometerChanged(CMPedometerData pedometerData, NSError error)
        {
            if (error == null)
            {
                var currentReadingTime = DateTime.Now;

                if (firstRead || (currentReadingTime - _lastReadingTime).TotalMilliseconds >= ReadingInterval)
                {
                    lastReading = (int)pedometerData.NumberOfSteps;
                    OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <int>(lastReading));
                    firstRead = false;
                }
            }
            else
            {
                OnReadingError?.Invoke(this, new DeviceSensorReadingErrorEventArgs(error.Description));
            }
        }
コード例 #9
0
ファイル: BarChart.cs プロジェクト: jgwoolley/Teacup-Cactus
 void ShowPedometerData(CMPedometerData data, NSError error, int i)
 {
     if (error == null)
     {
         values[i]      = data.NumberOfSteps;
         TotalSteps    += values[i];
         TotalDistance += data.Distance;
         Debug.Log(String.Format("steps {0} day(s) ago is {1}, distance is {2}", i, data.NumberOfSteps, data.Distance));
         if (values [i] > maxSteps)
         {
             maxSteps = values [i];
         }
         //DisplayGraph (values, i);
     }
     else
     {
         values [i] = 0;
         Debug.Log(String.Format("There was an error in getting steps of {0} days ago at index of {1} error detail {2}", 6 - i, i, error.LocalizedDescription));
     }
     if (i == 6)
     {
         DisplayStats();
     }
 }
コード例 #10
0
        public Activity(CMMotionActivity activity, DateTime startDate, DateTime endDate, CMPedometerData pedometerData)
        {
            MotionActivity = activity;
            this.startDate = startDate;
            this.endDate   = endDate;
            timeInterval   = (endDate - startDate).TotalSeconds;

            if (!activity.Walking && !activity.Running)
            {
                return;
            }

            NumberOfSteps   = pedometerData.NumberOfSteps.Int32Value;
            Distance        = pedometerData.Distance.Int32Value;
            FloorsAscended  = pedometerData.FloorsAscended.Int32Value;
            FloorsDescended = pedometerData.FloorsDescended.Int32Value;
        }
コード例 #11
0
 void HandleCMPedometer(CMPedometerData data, NSError error)
 {
     _pedometerInt = data.NumberOfSteps.Int32Value;
 }
コード例 #12
0
		void SavePedometerData (CMPedometerData pedometerData)
		{
			recentPedometerData.Insert (0, pedometerData);

			if (recentPedometerData.Count > MotionManager.MaxPedometerSamples)
				recentPedometerData.RemoveAt (recentPedometerData.Count - 1);
		}
コード例 #13
0
 private void PedometerDataHandler(CMPedometerData data, NSError err)
 {
     _lastData = data;
     _handle.Set();
 }