脉诊仪 SDK 集成

运行示例

  1. 将 SDK 的CorpNoAppKeyAppSecret,填入 AndroidManifest.xml 文件中对应的 meta-data;

  2. 运行。

接入SDK

声明权限

在 App 主模块的 AndroidManifest.xml 中,声明联网权限及 USB Host 模式:


<manifest>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-feature android:name="android.hardware.usb.host"/>
</manifest>

导入依赖

  1. 复制 yzPulse-1.3.aar 到 App 主模块的 libs 目录下;

  2. 在 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 初始化时传入回调,方法:

  1. 设备错误

    /**
     * @param code 错误码
     * @param msg 错误信息
     * @see PulseConstant.DeviceError
     */
    void deviceError(int code, String msg);
    

    详见 设备错误

  2. 事件

    /**
     * @param code 事件码
     * @param msg 事件信息
     * @see PulseConstant.Event
     */
    void onEvent(int code, String msg);
    

    详见 事件

  3. 脉诊仪已连接

    /**
     * @param device 脉诊仪USB设备信息
     */
    void onConnected(UsbDevice device);
    
  4. 实时脉象数据

    /**
     * @param location 1寸,2关,3尺
     * @param data     实时脉象数据,数组长度12
     */
    void onData(int location, float[] data);
    
  5. 采集步骤

    /**
     * @param step
     * @see PulseConstant.Step
     */
    void onStep(int step);
    

    详见 采集步骤

  6. 脉诊结果

    /**
     * @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脉宽图

脉象折线图

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

©2026 合肥云诊信息科技有限公司 all right reserved,powered by Gitbook修订时间: 2026-03

results matching ""

    No results matching ""