2

有一个带有 Microsoft Band 的环境光传感器,Windows Store 中的一些应用程序以 Lux 为单位显示 ALS 值,但我在 Band SDK 中找不到读取 ALS Lux 值的方法。

如何访问 ALS?

4

4 回答 4

2

如果您使用的是 Win 或 iOS,您可以使用 RFCOMM。但是,您必须自己编写所有内容。订阅传感器数据很容易,解析响应也很容易。但是,如果您需要与设备交互 - 通信磁贴等等,它就会变得复杂。如果您使用的是 Android,您将获得 MS Health 应用程序的支持,但由于它不公开此功能,您无法使用它。仅当您禁用(卸载?)MS Health 应用程序并再次自己编写所有内容时。

于 2015-08-18T16:42:16.033 回答
1

如前所述,公共 SDK 不会公开该传感器 - 但显然可以通过使用原始蓝牙接口获取信息(以及一堆其他东西) - 公共 API 是一种围绕原始蓝牙协议的包装器.

因此,如果您不害怕逆向工程和摆弄原始字节,您也许能够弄清楚如何解码传感器数据。您可以使用 Windows.Devices.Bluetooth.Rfcomm 库 - Microsoft 提供了一个代码示例,展示了如何设置基本的蓝牙 rfccomm 通信:https ://code.msdn.microsoft.com/windowsapps/Bluetooth-Rfcomm-Chat-afcee559

于 2015-07-01T18:21:19.600 回答
0

ALS 当前未通过公共 SDK 公开用于第 3 方应用程序。您可以在 SDK 的未来版本中添加访问此传感器的功能请求,网址为:http ://microsofthealth.uservoice.com/

于 2015-06-30T18:27:08.260 回答
0

the Microsoft Band SDK (NuGet package v1.3.11121) now exposes the ambient light sensor.

if (bandClient.SensorManager.AmbientLight.IsSupported)
{
    bandClient.SensorManager.AmbientLight.ReadingChanged += (s, args) =>
    {
        Debug.WriteLine(bandClient.SensorManager.AmbientLight.Brightness);
    };
    await bandClient.SensorManager.AmbientLight.StartReadingsAsync();
    await Task.Delay(TimeSpan.FromSeconds(5));
    await bandClient.SensorManager.AmbientLight.StopReadingsAsync();
}
于 2015-12-12T22:30:36.330 回答