2016-04-25 21 views
1

读取值我尝试从即使MS乐队继续在锁屏

  • 手机被锁定
  • 的应用频段读取加速计值还没有在对焦

读取值该应用程序的焦点作品相当不错。 但是,如果我按下“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

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

在任何情况下,长时间与乐队建立蓝牙连接可能会对乐队的电池造成严重损耗。为了您的用户,您可能需要确定其他触发器,以指示用户何时参与特定活动,然后仅在短时间内传输传感器数据。

+0

其实这正是我想要做的。可惜Windows Phone总是限制程序员。我不能使用后台任务,因为触发器之间的最小时间差至少为15分钟。如果后台任务触发,我只能得到有限的时间幻灯片。 该项目仅用于科学研究。只要我能够跟踪和分析数据,快速排空电池就可以了:) –

+1

您可以尝试使用带有Android平台的Band,因为它往往对后台任务执行有更“放松”的看法。 (您仍然可以通过Xamarin平台和工具在Android上使用.NET和C#)。 –

+0

这就是MS必须面对的问题。为什么这么少人想为WP开发的几个原因之一。这是一个过于封闭的系统,开发自由度几乎为零。由于严格的WP经济,这已经是我必须放弃的第三款APP。但谢谢你的回答。 –