跨平台手动设置bong3HR时间及表盘样式
bong吧
全部回复
仅看楼主
level 1
kekeflp 楼主
对不起!我在挖坟了!
手头上这么多年来只有一个手环就是bong3HR,官方已倒闭无法继续使用功能,但是没想到一直能充电。本着借鉴学习的心态,站在大佬 @飞huoxing 的肩膀上,简化和拓展了下“bong3HR自用v2.0.apk”,分析了一下设置协议,目前可以做到任何平台Android/ios/windows均可以做时间和表盘设置。
工具:iphone、bong3HR手环
软件:蓝牙调试助手(ios版本),其他平台找相类似的软件
说下我的思路:基于通信报文交互的思想,直接构建相关报文指令发送给手环,从而达到设置的功能(优点:对平台无要求;缺点:需要一点相关知识基础)。报文指令来自 bong3HR自用v2.0.apk 中,我稍微解析了一下。
步骤:
1、通过 蓝牙调试助手 可以发现并连接到低功耗蓝牙设备bong3HR,连接后可以看到手环具有1个服务,并包含2个特征,其中一个特征具有Notify(通知特性),另一个具有Write/ WriteWithoutResponse(写/响应特性);
服务:6e400001-b5a3-f393-e0a9-e50e24dccale
特征1:6e400003-b5a3-f393-e0a9-e50e24dccale (notify)
特征2:6e400002-b5a3-f393-e0a9-e50e24dccale (WriteWithoutResponse,w)
Write/ WriteWithoutResponse这个就比较关键了,设置的报文需要对这个特征发送;
2、时间 设置,构建报文对 特征2 做16进制格式写入操作,例如 10000007E90315030F000800 ;表示 2025-3-21 03:15:00 +08:00 ;
报文解析:10 0000 设备厂家自定好的头部不要改动他;07E90315030F00 即时间表示法转换成十进制为 20250321031500 ;08 00 不要改动他,盲猜是UTC +8的含义。
写入成功后会有报文响应:73756363657373 (ASCII:success),并且在手环上可以观察到时间发生改变;如果没有这个响应表示写入失败。
注意:这个方式是手动设置时间,所以会存在手环时间与当前时间的误差,请把握好发送报文的时机;
3、表盘样式设置,构建报文对设备发送,如下 29 000 000 21 00 ,前面的 29 000 000 21 这个是固定值,最后一位00变动,有多个取值范围对应不同的表盘样式:
写在最后面的话:
1、原官方apk有加壳,本人又比较菜无法查看到源码,看不到源码就看不到功能报文,如读取电量/步数/设置天气等相关功能;
2、由于没有拿到相关sdk报文定义或源码,也没做实验,所以尽量不要做其他报文尝试,请谨慎对待否则可能会变砖。
3、如果哪位道友有SDK相关报文的话能否交流一下,我学习下,万分感谢。
2025年03月26日 03点03分 1
1