MS Band: все отчеты о данных датчиков прекращаются после того, как датчик высотомера сообщает данные [возможная ошибка]
Я разрабатываю приложение UWP для Microsoft Band и недавно обновил его до Microsoft Band SDK ver 1.3.20115 из Band SDK ver 1.3.11121.
Я заметил, что если я подписан на чтение измененного события нескольких датчиков (включая датчик высотомера), я не получаю данные ни для одного датчика (включая высотомер), как только датчик высотомера сообщает данные в первый раз.
У меня есть упрощенная версия кода, где я все еще вижу проблему:
IBandClient bandClient;
async void SetupBand()
{
IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();
try
{
bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0]);
if (bandClient.SensorManager.Gyroscope.GetCurrentUserConsent() != UserConsent.Granted)
{
await bandClient.SensorManager.Gyroscope.RequestUserConsentAsync();
}
if (bandClient.SensorManager.Altimeter.GetCurrentUserConsent() != UserConsent.Granted)
{
await bandClient.SensorManager.Altimeter.RequestUserConsentAsync();
}
IEnumerable<TimeSpan> supportedAltimeterReportingIntervals = bandClient.SensorManager.Altimeter.SupportedReportingIntervals;
TimeSpan T1 = supportedAltimeterReportingIntervals.First();
bandClient.SensorManager.Altimeter.ReportingInterval = T1;
IEnumerable<TimeSpan> supportedGyroscopeReportingIntervals = bandClient.SensorManager.Gyroscope.SupportedReportingIntervals;
TimeSpan T2 = supportedGyroscopeReportingIntervals.First();
bandClient.SensorManager.Gyroscope.ReportingInterval = T2;
bandClient.SensorManager.Altimeter.ReadingChanged += (sender, args) =>
{
System.Diagnostics.Debug.WriteLine("Input received for Altimeter");
};
bandClient.SensorManager.Gyroscope.ReadingChanged += (sender, args) =>
{
System.Diagnostics.Debug.WriteLine("Input received for Gyroscope");
};
await bandClient.SensorManager.Gyroscope.StartReadingsAsync();
await bandClient.SensorManager.Altimeter.StartReadingsAsync();
}
catch (BandException ex)
{
// handle a Band connection exception
}
}
- С в приведенном выше коде я вижу кучу обновлений для датчика гироскопа, но как только датчик высотомера сообщает данные, все дальнейшие сообщения данных для гироскопа и высотомера прекращаются.
- код показывает проблему как для отладки, так и для выпуска (с цепочкой инструментов .NET Native compiler) сборок
- этот код прекрасно работает, если я использую Microsoft Band SDK 1.3.11121, но не работает для SDK 1.3.20115.
Я что-то пропустил или делаю неправильно в коде ?