MS Band继续在锁屏上读取值

时间:2016-04-25 19:44:09

标签: c# microsoft-band

即使

,我也尝试从乐队中读取加速度计值
  • 手机已锁定
  • 该应用没有重点

在应用程序具有焦点时读取值非常有效。 但如果我按下" Windows"按钮和处理其他应用程序,不再会激活ChangedEventArgs。

我想在一整天内收集加速度计和陀螺仪数据,以确定佩戴乐队的用户在做什么。 (吃,喝等模式识别)。

这是否可以使用默认的Microsoft.Band SDK?

我的代码

            IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();
            IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0]);
            if (bandClient.SensorManager.HeartRate.GetCurrentUserConsent() != UserConsent.Granted)
            {
                await bandClient.SensorManager.Gyroscope.RequestUserConsentAsync();
            }

            bandClient.SensorManager.Gyroscope.ReadingChanged += Gyroscope_ReadingChanged;
            await bandClient.SensorManager.Gyroscope.StartReadingsAsync();

2 个答案:

答案 0 :(得分:2)

应用程序必须连续运行才能从Band连续传输传感器数据。在Windows Phone上,通常意味着应用程序处于前台并处于活动状态;应用程序可以在后台传输传感器数据,但出于电池寿命的原因,后台任务对其执行的频率和持续时间有严格的限制。很少有应用程序可以连续运行(例如流媒体应用程序)。

在任何情况下,长时间与乐队建立有效的蓝牙连接可能会严重消耗乐队的电池电量。为了您的用户,您可能希望识别其他触发器,这些触发器指示用户何时可以参与特定活动,然后仅在那些短暂时间段内传输传感器数据。

答案 1 :(得分:2)

您可以探索DeviceUseTrigger以获得与乐队“近乎永久”的连接,而不是使用TimeTrigger后台任务。虽然我自己没有尝试过,但下面的文章详细介绍了必要的步骤。我认为考虑您的要求是一种可行的方法吗?

http://www.codeproject.com/Tips/1036512/Achieveing-Indefinite-Background-Execution-with-th