2016-05-09 6 views
1

Я новичок в разработке приложений для Microsoft Band. Я пытаюсь обнаружить, когда пользователь работает или идет. Для этого я слушаю Расстояние Датчик под SensorManger. датчик расстояния отправляются CurrentMotion, который имеет 5 состояние:CurrentMotion не изменяется в датчике расстояния в Microsoft Band

  • Idle
  • Стартстопное
  • Бег
  • Неизвестный
  • Walking

Я всегда получаю Idle состояние, когда я ходьба или даже бег.

Все остальные значения, такие как: Скорость, Pase, TotalDistance также обновляются.

Мой вопрос: когда изменяется группа microsoft CurrentMotion или как я могу обнаружить, что пользователь работает или нет?

Я пытаюсь следующий код:

var paireBands = await BandClientManager.Instance.GetBandsAsync(); 
var bandClient = await BandClientManager.Instance.ConnectAsync(paireBands[0]); 

bandClient.SensorManager.Distance.ReadingChanged += async (o, e) => 
     { 
      Debug.WriteLine(e.SensorReading.CurrentMotion.ToString()); 
      Debug.WriteLine(e.SensorReading.Speed.ToString()); 
      Debug.WriteLine(e.SensorReading.Pace.ToString()); 
      Debug.WriteLine(e.SensorReading.TotalDistance.ToString()); 
      Debug.WriteLine(e.SensorReading.DistanceToday.ToString()); 
     } 

await bandClient.SensorManager.Distance.StartReadingsAsync(); 

ответ

1

К сожалению об этом. Это ошибка, которая будет исправлена ​​в следующем выпуске Band SDK.

+0

спасибо @AndrewGa. Не могли бы вы рассказать мне, как я могу обнаружить, что пользователь работает или идет? –

+1

До тех пор, пока новый пакет SDK диапазона не будет опубликован, я думаю, что единственный способ - сделать некоторые ручные вычисления, такие как шаги в секунду от считывания датчика. Для ваших целей могут быть другие препятствия, такие как сбор сенсорных событий, когда телефон находится под экраном блокировки или когда ваше приложение телефона перестает быть на переднем плане. Поэтому вы можете изучить эти проблемы. После публикации SDK с исправлением вы переключитесь с помощью CurrentMotion. –