家里给老人买了智能血压计、定位手环这些设备,用着用着发现数据混了,张爷爷的血压跑到李奶奶账号里去了。问题出在哪儿?很可能是因为设备没有一个真正唯一的网络标识符。
为啥老人用的设备特别需要唯一标识?
老年人常用的健康设备大多要联网上传数据。比如每天测的血糖、心率,得准确对应到个人账户。如果两台设备用的是同样的默认ID,系统分不清谁是谁,数据一乱,家人看着都着急。
曾经有位用户反馈,他给爸妈各买了一个睡眠监测垫,结果App里总显示同一份数据。查了一圈才发现,厂家出厂时所有设备的默认设备名都是‘SmartMat_01’,连MAC地址都没改,系统直接当成同一个设备处理了。
真正的唯一标识不能靠手动改名字
有人图省事,在设备设置里把名称改成‘爸爸的血压计’‘妈妈的手环’。这对外观有用,但程序底层还是可能认成同一个设备。真正靠谱的标识得从底层生成,比如结合设备硬件信息和时间戳算出一个全球唯一的字符串。
常见的做法是用UUID(通用唯一识别码)。这种编码方式生成的字符串重复概率极低,就像每个人的指纹。比如下面这段代码可以生成一个版本4的UUID:
function generateUUID() {
return ('xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx').replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0,
v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}
// 调用后返回类似:
// "f47ac10b-58cc-4372-a567-0e02b2c3d479"
设备第一次启动时运行一次这个函数,把结果存进本地存储,以后每次联网都带上这个ID,后台就能准确识别是哪一台设备了。
普通家庭用户能做点啥?
如果你不是开发人员,也没关系。买设备的时候留意一下说明文档,看看有没有提到‘唯一设备ID’‘支持独立标识’这类字眼。便宜的杂牌产品往往省掉这一步,多个设备共用一套默认参数。
收到设备后,可以打开手机蓝牙或Wi-Fi列表,看看附近有没有重名设备。如果看到好几个‘ElderCareBand’,那就有隐患。正规品牌通常会在设备背面贴一串字母数字组合,和包装盒上的不重复,这就是它的物理唯一标识,可以用来绑定账号。
家里的子女可以花十分钟帮老人完成首次绑定,把设备ID和他们的姓名、常用手机号关联起来。以后换人用、换地方放,数据也不会串。