MS Band 继续在锁屏上读取值

MS Band continue reading values on lockscreen

即使

我也尝试从手环读取加速度计值

在应用获得焦点时读取值效果很好。 但是,如果我按下 "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();

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

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

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

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