常见问题

APP逻辑设计相关

是否需要绑定或配对设备?

这里需要弄清一个概念,问题中提到的绑定或配对,是指在安卓/iOS中添加配对的蓝牙设备。通常一些标准设备是会需要的,比如蓝牙耳机,手写笔,手环。这些会需要在手机系统的蓝牙设置进行设置。但我们的秤不用,具体我们会在下问说明

蓝牙4.0,也就是BLE,是不需要绑定蓝牙设备就可以直接使用。我们的秤使用的私有协议,无法通过手机系统蓝牙直接使用,市面上面几乎所有的体脂秤都是如此。我们APP(轻牛健康)中的添加设备,仅仅让APP记住用户的秤,并非是手机系统的蓝牙配对。添加设备的过程也是引导用户如何使用体脂称。我们小程序是做成简单粗暴的方式,不用添加秤直接打开后,就上秤连接测量。

客户这边可自行决定是否需要添加该逻辑,建议如果是做成APP的一个小功能模块,是可以直接做成类似我们小程序那样,直接上秤测量,展示数据。

如何做成用户踩秤后,APP马上响应

我们自己的APP(轻牛健康),在正常使用中,是让用户打开APP,踩亮秤,就马上测量,这样可以减少用户的操作步骤。其实说白了,就是打开APP后,APP自动调用SDK的一整套逻辑,无需用户点击选择设备之类的。具体实现步骤如下:

  1. 进入测量界面后,检查蓝牙状态
  2. 蓝牙已打开,开始扫描
  3. 扫描到体脂秤,判断是否为已添加设备或者无需判断就直接连接(该处视APP的逻辑不同而不同)
  4. 连接成功,展示测量动画
  5. 测量完成,展示测量结果

测量完成后,是否需要立马断开蓝牙连接

通常无需主动断开与秤的连接,除非用户退出测量界面。

如果需要测量立马断开连接,最好也能够延时2s断开。我们早期的一些成功,如果测量完成立马断开,秤可能出现意想不到的现象。

数据如何分析

一个数据是否标准、偏低等,这个可以参考我们的SDK指标标准描述

我们Demo中也有展示如何对数据进行分析,只不过Demo的界面只展示评级登记,未像我们APP那样做成足够美观的报告。

APPID和配置文件相关

appid与配置文件是什么?分别有什么作用?

appid是Yolanda为客户创建的唯一标识,会在我们后台进行登记,一个给定appid,通常是一直不会变化。demo中的123456789这个appid是我们测试以及让客户体验用的appid,该appid的特性不稳定,随时可能会进行修改。如果已经达成正式合作意向,建议还是向我们都是商务或销售申请appid,申请过程很快,一般几分钟就可以完成。

配置文件是配合appid使用的一些加密数据,约定了型号、算法、指标等一些信息。不同的客户要求会所有不同,所以我们把客户定制化要求封装在该配置文件中。

不同客户端是否可以使用同一个APPID

安卓和iOS是可以用一个appid,小程序/小程序插件 跟该SDK的appid暂时不能使用同一个

SDK是否为离线的?它会向Yolanda云端发送什么数据?

在方法initSdk中,SDK会发送一个请求跟我们的云端校验,配置文件是否需要更新。如果需要更新,会下载最新的配置文件(配置文件很小,一般为512字节),如果不需要更新,则不做任何处理。

SDK是支持离线模式的,客户如果特别要求,我们会把配置文件中关于该项的配置设置成离线。设置成离线后,SDK不再向外发送任何网络请求(这个可以用抓包工具验证)配置文件不再更新,如果需要增加型号或指标,则需要跟我司再次申请配置文件,然后由开发人员手动替换。

初始化提示appid错误

  • 检查初始化文件和使用的appid是否匹配
  • 检查引入的SDK是否是最新的

测量完成后返回的数据缺失指标

如果是只有体重和BMI的数据可以参考测量完成后没有体脂率等数据.

如果能够测到体脂率,但是缺失自己想要的指标,该情况通常是配置文件中未包含该指标,需要跟我司商务/销售沟通,增加该指标。

我司增加指标后,会重新发送一个配置文件,需要替换该配置文件。

把扫描的设备的model id发给我司进行确认

SDK功能相关

是否能判断秤是否灭屏?

对于普通蓝牙秤双模秤来说,未连接设备时,扫描拿到的设备对象QNBleDevice,有个属性isScreenOn,该属性指示了屏幕是否亮屏。连接设备后,无法直接判断设备是否亮屏,不过对于一些秤来说,息屏的时候就会断开连接。

isScreenOn 属性只是表明SDK扫描到那一刻该设备是亮屏的,后续设备屏幕状态变化了,QNBleDevice不会动态更新。需要通过扫描到的新的QNBleDevice回调才能判断。

对于广播秤来说,能够扫描到设备,就是已开机的状态,扫描不到,通常就是未开机。

连接设备一直无法成功或者成功后很快就断开连接

  • 检查设备是否被其他人连接了
  • 在系统蓝牙中查看是否当前连接的设备已经被配对,如果已经配对,需要取消配对
  • 部分手机需要先扫描才能连接成功,先扫描设备再进行连接

SDK返回无定位权限错误

  • 检查是否对ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION都进行了申请,SDK中对2个权限都进行了校验
  • 是否编译版本26以及以上,如果是,2个权限都需要单独申请(8.0的新特性)

    安卓6.0以上,谷歌把蓝牙归类为定位功能的一部分,使用蓝牙扫描时,需要用户授权定位权限,不然调用扫描时,系统会提示需要定位权限 相当一部分手机(大约有1/3的样子,不打开定位服务开关时,也是无法扫描到设备,原生大多数如此,而国产系统会对此有些优化,就不一定了)

SDK返回错误的文件,确认文件位置无异常,确认文件在demo中使用无异常

  • 检查是否有添加so库
  • 检查是否打包的apk文件中含有so库

数据或者设备等监听回调,同一时间回调多次

  • 先确定是否,设置了多次监听。当监听不使用时,一定要设置为null
  • 确定是否是穿鞋测量,这个可能导致短时间内,完成多次测量的情况

测量完成后没有体脂率等数据

  1. 检查资料是否正确,主要是生日(用来计算年龄)、身高这两个参数,是否超出正常值范围
  2. 是否有脱鞋进行测量。穿鞋测量时,无法测到生物阻抗,所以无法计算体脂率等指标

扫描不到设备,该如何处理

  1. 检查是否打开蓝牙、是否有踩亮秤,手机是否跟秤相距过远(超过10米)
  2. 检查所扫描的设备,是否已经被其他人连接
  3. 如果是Android,则可以检查下是否有定位权限,另外是否有打开定位服务开关
  4. 尝试重启蓝牙,再不行,重启蓝牙试试。

是否有手环SDK?

我司有智能手环设备,也是有SDK。不过SDK暂时没有对外完全开放,如有意向,可以联系我司商务洽谈。

SDK是否可以只做协议解析,蓝牙扫描和连接由客户自己管理

这个是可以实现的,普通蓝牙秤和蓝牙广播秤的实现方式会有不同。

自己实现蓝牙扫描和连接的管理,有一定的技术难度,如果没有相关蓝牙开发经验,不建议进行此操作。如果执意进行该项操作,我们会为认为客户有较丰富的蓝牙开发经验。

  1. 编写自己的蓝牙协议代理类,实现各个蓝牙操作方法
  2. 编写数据监听回调类 QNScaleDataListener,并使用[QNBleApi.setBleDeviceDiscoveryListener注册到SDK中。
  3. 自己进行蓝牙扫描,并把扫描到的相关信息传给SDK,使用方法QNBleApi.buildDevice,创建Yolanda蓝牙设备对象
  4. 创建用户对象,使用方法QNBleApi.buildUser
  5. 创建蓝牙协议处理类
  6. 进行蓝牙连接
  7. 连接成功,发现完服务成功后,调用蓝牙协议处理类的prepare方法
  8. 处理QNScaleDataListener回调的数据
  9. 收稳定数据后自行处理。

你们官网API的《秤状态定义》里的状态是0-9,为什么在你们提供的Demo里有为“-1”的状态(而且确确实实会返回这个状态)

-1一直存在,表示默认状态失去连接,也就是连接是断开的状态。通常是秤主动断开连接后收到的。我们会尽快把这个状态也统一到断开连接状态。

其他问题

是否可以给到体脂率等指标的计算方法?

这些指标的算法属于我司机密,无法提供。

什么是秤端存储数据

普通蓝牙秤在称重时未连接手机的情况下,秤会把数据存在秤体内,等下次连接蓝牙时,会把这些数据传给APP,由于SDK无法识别该用户是谁的,所以会把这个数据交由APP来分配,分配用户可以交给SDK来计算完整数据。

可否提供蓝牙协议

原则上我们不会提供蓝牙协议,如果实在需要,可以跟我们的商务/销售沟通

为什么我们使用SDK测量出来的数据与轻牛或轻牛健康的数据会有差异

Yolanda有几套算法,不同的设备可能使用的不同算法。

另外,我们自己APP中有一个健康问题机制,会让用户回答2个问题,并且根据用户回答的情况,而采用不同的算法。

SDK中的算法机制通常为统一的某种算法,不可变的。也就是说,同一个秤使用我司的APP测量与使用SDK进行测量,计算资料和体重一样,也有可能有会不少的差异。所以,我司不建议使用我司APP和SDK的测量数据进行对比,客户只需要关心给到的算法是否合适,是否稳定即可。

线上版本出现蓝牙连接异常后,怎么排查问题

先查清用户的手机型号,如果可以的话,尽量使用跟客户同样的型号来测试。

注册日志输出接口QNLogListener,记录相关日志(可以保存日志文件),发给我司开发人员进行分析。

搜索到蓝牙并连接上后,脚悬空停留在体脂秤上面几秒,然后把脚拿开,会返回测量完成的状态码(返回数据的方法内并没有返回任何数据)

为什么我们在没有任何操作的情况下也能搜索到蓝牙(10-30分钟内没有人靠近体脂秤)

称重的时候,如果未连接APP,秤会把这个数据缓存到里面,息屏后也会广播5-30分钟(视生产批次不同而不尽相同)。此时APP连接后,可以把这些缓存的数据接收到,并显示给客户。该功能用来解决,用户称重时不用手机,称重结束后,坐在沙发上打开手机并接收刚才的数据。

results matching ""

    No results matching ""