CMPedometer pedometer; // since iOS 8.0 public MotionPrivacyManager () { if (UIDevice.CurrentDevice.CheckSystemVersion (8, 0)) { pedometer = new CMPedometer (); motionStatus = CMPedometer.IsStepCountingAvailable ? "Available" : "Not available"; } else { stepCounter = new CMStepCounter (); motionManger = new CMMotionManager (); motionStatus = motionManger.DeviceMotionAvailable ? "Available" : "Not available"; } }
CMPedometer pedometer; // since iOS 8.0 public MotionPrivacyManager() { if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0)) { pedometer = new CMPedometer(); motionStatus = CMPedometer.IsStepCountingAvailable ? "Available" : "Not available"; } else { stepCounter = new CMStepCounter(); motionManger = new CMMotionManager(); motionStatus = motionManger.DeviceMotionAvailable ? "Available" : "Not available"; } }
public IObservable <int> WhenReadingTaken() => this.stepOb ??= Observable.Create <int>(ob => { var scm = new CMStepCounter(); scm.StartStepCountingUpdates(NSOperationQueue.CurrentQueue ?? new NSOperationQueue(), 1, (steps, timestamp, error) => ob.OnNext((int)steps) ); return(() => { scm.StopStepCountingUpdates(); scm.Dispose(); }); }) .Publish() .RefCount();
public void ForceUpdate() { //If the last reset date wasn't today then we should update this. if (_resetTime.Date.Day != DateTime.Now.Date.Day) { _resetTime = DateTime.Today; //Forces update as the day may have changed. } NSDate sMidnight = Helpers.DateHelpers.DateTimeToNSDate(_resetTime); _queue = _queue ?? NSOperationQueue.CurrentQueue; if (_stepCounter == null) _stepCounter = new CMStepCounter(); _stepCounter.QueryStepCount(sMidnight, NSDate.Now, _queue, DailyStepQueryHandler); }
public IObservable <int> WhenReadingTaken() { this.stepOb = this.stepOb ?? Observable.Create <int>(ob => { var scm = new CMStepCounter(); scm.StartStepCountingUpdates(NSOperationQueue.CurrentQueue, 10, (steps, timestamp, error) => { }); return(() => { scm.StopStepCountingUpdates(); scm.Dispose(); }); }); return(this.stepOb); }
public void ForceUpdate() { //If the last reset date wasn't today then we should update if (_resetTime.Date.Day != DateTime.Now.Date.Day) { _resetTime = DateTime.Today; //Forces update as the day may have changed. } NSDate sMidnight = DateHelpers.DateTimeToNSDate(_resetTime); _queue = _queue ?? NSOperationQueue.CurrentQueue; if (_stepCounter == null) { _stepCounter = new CMStepCounter(); } _stepCounter.QueryStepCount(sMidnight, NSDate.Now, _queue, DailyStepQueryHandler); }
public void ForceUpdate() { //If the last reset date wasn't today then we should update this. if (_resetTime.Date.Day != DateTime.Now.Date.Day) { _resetTime = DateTime.Today; //Forces update as the day may have changed. } NSDate sMidnight = DateTime.SpecifyKind(_resetTime, DateTimeKind.Utc); if (_queue == null) { _queue = NSOperationQueue.CurrentQueue; } if (_stepCounter == null) { _stepCounter = new CMStepCounter(); } _stepCounter.QueryStepCount(sMidnight, NSDate.Now, _queue, DailyStepQueryHandler); }
void RequestMotionAccess() { stepCounter = new CMStepCounter(); stepCounter.QueryStepCount( NSDate.FromTimeIntervalSinceNow(-60 * 60 * 24), NSDate.Now, NSOperationQueue.MainQueue, ((steps, error) => { if (error != null && error.Code == (int)CMError.MotionActivityNotAuthorized) { motionStatus = "Not Authorized"; UpdateStatus(); } else { motionStatus = "Available"; var stepMsg = String.Format("You have taken {0} steps in the past 24 hours", steps); InvokeOnMainThread(() => { stepsMessage.Text = stepMsg; UpdateStatus(); }); } })); }