脉诊仪 SDK 集成
运行示例
将 SDK 的
CorpNo、AppKey与AppSecret,填入 AndroidManifest.xml 文件中对应的 meta-data;运行。
接入SDK
声明权限
在 App 主模块的 AndroidManifest.xml 中,声明联网权限及 USB Host 模式:
<manifest>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-feature android:name="android.hardware.usb.host"/>
</manifest>
导入依赖
复制 yzPulse-1.3.aar 到 App 主模块的 libs 目录下;
在 App 主模块的构建文件中添加依赖:
implementation files('libs/yzPulse-1.3.aar') implementation 'com.github.mik3y:usb-serial-for-android:3.8.1' implementation 'com.squareup.okhttp3:okhttp:4.9.2' implementation 'com.google.code.gson:gson:2.9.0'
脉诊SDK版本可能有所变动
使用
初始化
在开始使用前,初始化 SDK:
/**
* @param context
* @param corpNo
* @param appKey
* @param appSecret
* @param debug 是否开启调试日志打印
* @param callback 回调
* @return -1参数错误,0成功
*/
int init(Context context, String corpNo, String appKey, String appSecret, boolean debug, PulseCallback callback);
建议在开发调试阶段,开启 SDK 日志打印,正式发布版本关闭;
回调详见 回调
新的采集
在新的用户采集前,传入用户性别、年龄、BMI:
/**
* @param sex 0未知,1男,2女
* @param age 年龄
* @param bmi
* @return -1参数错误,0成功
*/
int newCollect(Integer sex, Integer age, Float bmi);
该步骤是必须的,性别未知时传入 0,年龄未知时传入 null,BMI 未知时传入 null。
开始采集
左右手脉象分开采集:
/**
* @param hand 0左手,1右手
* @return -1参数错误,0成功
*/
int startCollect(int hand);
释放
采集分析完成后,释放 SDK :
void release();
回调
SDK 初始化时传入回调,方法:
设备错误
/** * @param code 错误码 * @param msg 错误信息 * @see PulseConstant.DeviceError */ void deviceError(int code, String msg);详见 设备错误
事件
/** * @param code 事件码 * @param msg 事件信息 * @see PulseConstant.Event */ void onEvent(int code, String msg);详见 事件
脉诊仪已连接
/** * @param device 脉诊仪USB设备信息 */ void onConnected(UsbDevice device);实时脉象数据
/** * @param location 1寸,2关,3尺 * @param data 实时脉象数据,数组长度12 */ void onData(int location, float[] data);采集步骤
/** * @param step * @see PulseConstant.Step */ void onStep(int step);详见 采集步骤
脉诊结果
/** * @param pulseResult */ void onResult(YzPulseResult pulseResult);详见 脉诊结果
设备错误
详见 PulseConstant.DeviceError
| 错误码 | 常量 | 错误信息 |
|---|---|---|
0 |
DISCONNECTED |
脉诊仪已断开 |
1 |
CONNECTION_FAILED |
脉诊仪连接失败 |
2 |
COMMUNICATION_ERROR |
脉诊仪通信错误 |
3 |
UNSUPPORTED_DEVICE |
不支持的脉诊仪 |
事件
详见 PulseConstant.Event
| 事件码 | 常量 | 事件信息 |
|---|---|---|
10 |
COLLECTION_CANCELLED |
脉象采集已取消 |
11 |
INCORRECT_POSTURE |
手臂或手腕姿势错误 |
12 |
FILE_WRITE_ERROR |
脉诊仪采集数据文件写入错误 |
13 |
AUTHORIZATION_FAILED |
脉诊SDK授权失败 |
14 |
AI_ANALYSIS_FAILED |
脉诊AI分析失败 |
15 |
AI_ANALYSIS_TIMED_OUT |
脉诊AI分析超时 |
采集步骤
详见 PulseConstant.Step
| 步骤码 | 常量 | 步骤信息 |
|---|---|---|
20 |
FU |
浮取 |
21 |
ZHONG |
中取 |
22 |
CHEN |
沉取 |
23 |
AI_ANALYSIS |
AI分析中 |
脉诊结果
YzPulseResult
| 属性 | 说明 | 类型 | 备注 |
|---|---|---|---|
left |
左手脉象结果 | YzPulseResult.Hand |
|
right |
右手脉象结果 | YzPulseResult.Hand |
|
pulseMailv |
双手脉率 | BigDecimal |
|
pulseResult |
双手脉象 | String |
多个时使用英文逗号分隔,详见脉象 |
pulseInterpretation |
脉象解读 | String |
Markdown格式文本 |
YzPulseResult.Hand
| 属性 | 说明 | 类型 | 备注 |
|---|---|---|---|
updateTime |
上传时间 | String |
|
checkState |
检测状态 | Short |
0未检测, 1检测成功, 2检测失败 |
errorMsg |
检测失败错误信息 | String |
|
completeTime |
检测完成时间 | String |
|
mailv |
脉率 | BigDecimal |
|
result |
脉象 | String |
多个时使用英文逗号分隔 |
cunWidth |
寸3D脉宽图HTML链接 | String |
脉宽3D图 |
guanWidth |
关3D脉宽图HTML链接 | String |
脉宽3D图 |
chiWidth |
尺3D脉宽图HTML链接 | String |
脉宽3D图 |
cunOpp |
寸脉象折线图链接 | String |
脉象折线图 |
guanOpp |
关脉象折线图链接 | String |
脉象折线图 |
chiOpp |
尺脉象折线图链接 | String |
脉象折线图 |
totalOpp |
综合脉象折线图链接 | String |
脉象折线图 |
示例图
脉宽3D图
寸关尺三部3D脉宽图

脉象折线图
寸关尺三部脉象及综合脉象折线图
