太一脉诊二次开发包

cc12458 e3a760991b Merge tag '1.1.0-alpha.04' into develop 2 週間 前
.idea 71c3b7ba4a 添加 publish 功能,升级 oss 依赖,移除友盟 sdk 1 ヶ月 前
TYUsbSDK 595d5d4cda OSS 支持 agency 配置:url,方法,请求头转换查询参数 2 週間 前
app 2ced11ff92 移除冗余资源 1 ヶ月 前
ble 595d5d4cda OSS 支持 agency 配置:url,方法,请求头转换查询参数 2 週間 前
gradle 4f20743882 项目初始化 3 ヶ月 前
.gitignore 71c3b7ba4a 添加 publish 功能,升级 oss 依赖,移除友盟 sdk 1 ヶ月 前
README.md 4f20743882 项目初始化 3 ヶ月 前
build.gradle 4f20743882 项目初始化 3 ヶ月 前
demokey 4f20743882 项目初始化 3 ヶ月 前
gradle.properties 71c3b7ba4a 添加 publish 功能,升级 oss 依赖,移除友盟 sdk 1 ヶ月 前
publish.gradle 71c3b7ba4a 添加 publish 功能,升级 oss 依赖,移除友盟 sdk 1 ヶ月 前
settings.gradle 71c3b7ba4a 添加 publish 功能,升级 oss 依赖,移除友盟 sdk 1 ヶ月 前

README.md

一.测脉使用

注意:若不适用USB可以不添加usb的库可减轻app的大小,无论USB还是蓝牙都需要前往"设置"、"应用列表"、相关应用中开启文件存储权限。USB测脉时需要检查设备是否开启OTG权限。

1.引入SDK需要的外部三方库,在build.gradle中添加,将TYUsbSDK-1.0.aar放于libs目录

//索引libs目录寻找sdk库
implementation(fileTree("libs"))
//外部引用
implementation 'com.github.felHR85:UsbSerial:6.1.0'
implementation 'com.opencsv:opencsv:5.6'
implementation 'com.aliyun.dpa:oss-android-sdk:2.9.5'
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
implementation 'com.android.volley:volley:1.2.1'
implementation 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
implementation 'io.reactivex.rxjava2:rxjava:2.1.7'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
implementation 'org.greenrobot:eventbus:3.1.1'
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.41'

2.以第三方开发者的身份对接太一脉诊系统,需添加初始化appId与appSecret。开发时及时向太一团队进行申请,请勿使用案例id和secret。

//生产环境
private String appId = "nehijR6y";
private String appSecret = "f740435d1b84b9944a52f064dd1ecf6e8a76f546";
//测试环境
private String appId = "L9MYjxvu";
private String appSecret = "bb9e56f8ab0a44fd88eae05d0bed3c5ccd0f80e9";

//初始化代码
TaiyiManager.getInstance().init(appId,appSecret,getApplication());

3.在需要进入测脉页面的actvity上实现ResultListenerTaiyiManager.SkipInterface两个接口

public class MainActivity extends AppCompatActivity implements ResultListener, TaiyiManager.SkipInterface {
    //用于接收最终返回的结果字符串
    @Override
    public void onResult(String pr, String measureId) {

        Log.w("MainActivity", "onResult:" + pr);
        mTextView.setText(pr);
        Log.w("MainActivity", "measureId:" + measureId);
    }
    //用于直接跳过脉诊进行使用
    @Override
    public void onSkip() {
        Intent intent = new Intent(this, SkipActivity.class);
        startActivity(intent);
    }
}

4.跳转进入测脉页面

 //uid表示第三方开发者系统中的当前登录用户uid,后面三格参数依次表示当前Activity实例、未来需要强制跳转的activity、以及监听结果的activity
 TaiyiManager.getInstance().toMeasure(uid,MainActivity.this,MainActivity.this,MainActivity.this)

5.测脉完成后在onResult中接收结果

//用于接收最终返回的结果字符串
@Override
public void onResult(String pr, String measureId, String reportData) {
    Log.w("MainActivity", "onResult:" + pr);
    mTextView.setText(pr);
    Log.w("MainActivity", "measureId:" + measureId);
}
//pr为结果字符串, reportData为报告数据

6.跳过测脉的回调在onSkip中操作

//用于直接跳过脉诊进行使用
@Override
public void onSkip() {
    Intent intent = new Intent(this, SkipActivity.class);
    startActivity(intent);
}

7.最终结果字符串三种数据,根据下方数据格式进行解析即可

//左手
{
	"measureId": "0c0580bdfba94bada7cdcf3a3aa11a9a",
	"pulseUrl": "https://hybrid.test.reborn-tech.com/report.html#/?mid=0c0580bdfba94bada7cdcf3a3aa11a9a&access_session=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcHBJZCI6Ikw5TVlqeHZ1IiwiYXBwU2VjcmV0IjoiYmI5ZTU2ZjhhYjBhNDRmZDg4ZWFlMDVkMGJlZDNjNWNjZDBmODBlOSJ9.uCy4k-Dafx01XoWJfMIvznOmd8SdjGfewNrHKwdzHko&appId=L9MYjxvu",
	"handStyle": "LEFT",
	"createTime": "2023-04-18 09:56:32",
	"pulseResult": "细"
}

//右手
{
	"measureId": "8fb05027f3bd4282be7eb79bbd9ee148",
	"pulseUrl": "https://hybrid.test.reborn-tech.com/report.html#/?mid=8fb05027f3bd4282be7eb79bbd9ee148&access_session=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcHBJZCI6Ikw5TVlqeHZ1IiwiYXBwU2VjcmV0IjoiYmI5ZTU2ZjhhYjBhNDRmZDg4ZWFlMDVkMGJlZDNjNWNjZDBmODBlOSJ9.uCy4k-Dafx01XoWJfMIvznOmd8SdjGfewNrHKwdzHko&appId=L9MYjxvu",
	"handStyle": "RIGHT",
	"createTime": "2023-04-18 10:03:16",
	"pulseResult": "软"
}

//双手
{
	"measureId": "d8ab2774d6e74dba88d1b72810c957c4",
	"pulseUrl": "https://hybrid.test.reborn-tech.com/report.html#/?mid=d8ab2774d6e74dba88d1b72810c957c4&access_session=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcHBJZCI6Ikw5TVlqeHZ1IiwiYXBwU2VjcmV0IjoiYmI5ZTU2ZjhhYjBhNDRmZDg4ZWFlMDVkMGJlZDNjNWNjZDBmODBlOSJ9.uCy4k-Dafx01XoWJfMIvznOmd8SdjGfewNrHKwdzHko&appId=L9MYjxvu",
	"handStyle": "DOUBLE",
	"createTime": "2023-04-18 10:13:56",
	"pulseResult": "细软"
}

8.demo中的TYMeasureHandsActivity为sdk中开源出来的界面,可以选择直接调用sdk中的界面

TaiyiManager.getInstance().toMeasure(uid, MainActivity.this,MainActivity.this,MainActivity.this);

也可以使用该这个demo中开源出来的界面,针对特定功能进行定制

TaiyiManager.getInstance().toTargetMeasure(uid, TYMeasureHandsActivity.class, MainActivity.this,MainActivity.this,MainActivity.this);

在使用sdk双手界面时,在完成第一次脉诊仪设备授权后,可以用下面的两个方法从最外面直接进入左手或右手测脉界面

//直接打开左手测脉过程界面
TaiyiManager.getInstance().toDirectMeasure(uid,MainActivity.this,MainActivity.this,MainActivity.this, true);
//直接打开右手测脉过程界面
TaiyiManager.getInstance().toDirectMeasure(uid,MainActivity.this,MainActivity.this,MainActivity.this, false);