一.测脉使用 ## 注意:若不适用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上实现**ResultListener**及**TaiyiManager.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); ```