【问题标题】:Unable to find BLE device when type is STEP_COUNT_DELTA类型为 STEP_COUNT_DELTA 时无法找到 BLE 设备
【发布时间】:2017-10-07 13:51:12
【问题描述】:

我正在使用 Google fit API 连接 Sony Smartband2 手环。 我现在要做的就是扫描并认领设备。

(关注This Fitness ble guide)

当我将数据类型设置为 TYPE_HEART_RATE_BPM 时,我可以找到并认领我的设备。但是,当我将其设置为 TYPE_STEP_COUNT_DELTA 或 TYPE_STEP_COUNT_CUMULATIVE 时,我无法找到该设备。

可能是什么问题? 我知道以后我还需要使用 Sensors API,但是要找到设备,我不需要它,对吧?

构建 api 客户端:

mApiClient = new GoogleApiClient.Builder(this)
                .addApi(Fitness.BLE_API)
                .addApi(Fitness.SENSORS_API)
                .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE))
                .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ))
                .addScope(new Scope(Scopes.FITNESS_LOCATION_READ))
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();

扫描 BLE 设备:

PendingResult<Status> pendingResult = Fitness.BleApi.startBleScan(
                mApiClient,
                new StartBleScanRequest.Builder()
                .setDataTypes(DataType.TYPE_HEART_RATE_BPM)
                //.setDataTypes(DataType.TYPE_STEP_COUNT_DELTA)
                //.setDataTypes(DataType.TYPE_STEP_COUNT_CUMULATIVE)
               .setBleScanCallback(bleScanCallback)
               .build());

在这里,当我使用任何注释语句时,我没有得到任何结果。

任何帮助将不胜感激,谢谢。

【问题讨论】:

标签: android bluetooth-lowenergy sony google-fit


【解决方案1】:

智能手环 2 不通过传感器 API 提供步数。大多数乐队没有。您可以从 History API 中获取更大的步数(例如约 1 分钟),并将其与 Sensor API 中的 BPM 进行匹配。

我正在测试多个品牌和乐队,但大多数都没有提供步骤。 SmartBand 2 具有我测试过的所有乐队中最高分辨率的 BPM,包括售价 4 倍的乐队,因此 SmartBand 2 是我日常使用和测试的个人选择 - 但我真的希望索尼要么添加智能手环 2 的实时步骤或发布新的智能手环。

【讨论】:

  • 你说的匹配 BPM 是什么意思?
  • BPM 是您可以获得的唯一实时数据类型。如果您只想要“实时”步骤,那么您唯一的选择是每 10 秒查询一次历史 API,以获取大小为 10 秒的单个存储桶或类似的东西。我实际上不确定最小存储桶大小是多少-但是如果存储桶太小,您无论如何都无法获得良好的数据(步骤以特定的时间间隔集中在一起)所以也许这不是一个可行的解决方案,但是作为据我所知,这是你唯一的选择。我们使用 1 分钟的存储桶每 1 分钟查询一次,这似乎工作正常。
  • 这是有道理的。如何将 Ble api 和 History api 集成到一个应用程序中?它们似乎彼此独立。我的意思是,Ble api 正在扫描并认领我的智能手环,而 History api 正在获取数据,但我认为它不知道它需要考虑来自手环 + 手机的数据。您是如何做到这一点的?
  • 顺便说一句,如果您要尝试从 BLE API 获取数据,您将不得不考虑这样一个事实,即大多数设备都有一个辅助数据更正过程来修复错误的步骤或奇怪的读数 - 几乎每个设备都有完全不同的数据质量。不同的品牌提供自己的 API,但数据质量很广泛。索尼拥有非常高质量的格式化数据,联想还可以,Garmin 实际上糟糕到我无法相信有人使用他们的设备......要么选择一个品牌,要么只坚持通过 Google Fit 实际运行数据的东西.
  • 你错了:D。基本上,Google Fit 只是健身数据的聚合工具,除了手机 [和 Google Wear 设备?] 中的计步器之外,它不处理任何外部传感器。智能手环和健身/活动追踪器依靠他们自己的应用程序从他们的设备收集数据。一些应用程序,如 LifeLog,提供了将数据输入 Google Fit 的桥梁。 LifeLog 实际上是少数几个可以做到这一点的应用程序之一,而且做得很好。 Garmin/Lenovo/Mi 基本上没有。如果您想要来自智能手环的 Google Fit 数据,那么索尼可能是可用数据的唯一选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 2022-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-07
相关资源
最近更新 更多