andorid SDK 集成指南_v2.5版本履历Andorid SDK概述术语定义Android SDK集成1. SD复制OmronBleSdk.jar到工程 libs/ 目录下。2.修改包名3.app添加sdk需要的依赖包4. Manifest里面添加权限(新增Android12权限)5. 需要动态申请定位权限(新增Android12权限)6. SDK 初始化验证7. 调用SDK的接口实现功能周期扫描接口回调血压接口回调Android API1. 异常情况枚举2. 设备扫描回调接口说明3. 数据回调接口说明3.1 血压回调接口说明3.1.1. onFailure(OMRONBLEErrMsg errMsg)3.1.2. void onBindComplete(String deviceType, String deviceName, String address, DeviceInfo deviceInfo, List bpDataList);3.1.3. onDataReadComplete(List data)3.2. 体脂回调说明3.2.1. onFailure(OMRONBLEErrMsg errMsg)3.2.2. void onBindBodyFatComplete(String deviceType, String deviceName, String userindex, String address, String sex, String height, String birthday, DeviceInfo deviceInfo, List bfDataList);3.2.3. onBodyFatDataReadComplete(String deviceType, String deviceName, String userindex, String address, List data,String sex , String height, String birthday)3.3. 血糖回调说明3.3.1. onFailure(OMRONBLEErrMsg errMsg)3.3.2. void onBindComplete(String deviceType, String deviceName, String deviceAddress, List dataList);3.3.3. void onDataReadComplete(String deviceType, String deviceName, String deviceAddress, List dataList);3.4. 血氧回调说明3.4.1. onFailure(OMRONBLEErrMsg errMsg)3.4.2. void onBoComplete(String deviceType, String deviceName, String address, DeviceInfo deviceInfo, List boDataList);3.4.3. void onBoDataReadComplete(String deviceType, String deviceName, String address, List data);4. 数据参数4.1 血压数据类参数4.2 体脂数据类参数4.3 血糖数据类参数4.4 血氧数据类参数5. 设备类型设备信息设备类别6. 对外接口6.1. 对外蓝牙SDK的调用类6.1.1 SDK初始化6.2. 获取OMRONLib单例对象6.3. 注册方法6.4 根据设备类别获取可用设备列表6.5 扫描6.5.1 开启扫描(旧版本扫描方法,不推荐)6.5.2 开启绑定扫描6.5.3 开启同步扫描6.5.4 停止扫描6.6 血压6.6.1 血压绑定设备接口6.6.2 血压同步数据接口6.6.3 血压计停止绑定流程6.6.4 开启血压计设备监听6.6.5 停止血压计设备监听6.7 体脂6.7.1 体脂绑定接口6.7.2 绑定体脂设备机位6.7.3 体脂同步接口6.7.4 停止体脂绑定或同步数据流程6.7.5 开启体脂仪设备监听6.7.6 停止体脂仪设备监听6.8 血糖6.8.1 血糖绑定接口6.8.2 血糖同步接口6.8.3 停止血糖绑定或同步数据流程6.8.4 开启血糖仪设备监听6.8.5 停止血糖仪设备监听6.9 血氧6.9.1 血氧绑定接口6.9.2 血氧同步接口6.9.3 停止血氧绑定或同步数据流程6.9.4 开启血氧仪设备监听6.9.5 停止血糖仪设备监听6.10. 蓝牙连接状态取得6.10.1 状态获取6.10.2 注册监听6.10.3 取消监听6.11. 用户敏感信息可见等级6.11.1 用户敏感信息可见等级说明6.11.2 设置用户敏感信息可见等级6.11.3 设置日志等级6.12 设备指纹6.12.1 获取设备指纹7. SDK使用注意事项7.1 个人信息说明7.2 绑定个人信息说明7.3 同步个人信息说明
ver 2.5:增加独立授权设备限制。
ver 2.4:增加应用限制、蓝牙连接状态返回、优化日志功能。
ver 2.3:新增血氧仪HPO-201T,AF血压计U734T等设备的绑定和数据同步功能。
ver 2.2:对应无网络时也能访问。
ver 2.1:对应android 12权限。
本SDK主要提供欧姆龙血压计、血糖仪、体脂仪、血氧仪的绑定、同步数据功能。开发者添加jar文件到项目中,调用sdk提供的接口方法,实现对血压和体脂设备的操控。 SDK包含OmronBleSdk.jar文件
| No. | 术语 | 意义 | 欧姆龙开放平台中的位置 | 使用位置 |
|---|---|---|---|---|
| 1 | appKey | 应用的密钥(开发者key)。 | 总览->应用->app-key | 参考《6.3. 注册方法》章节 |
| 2 | ekiKey | 设备密钥(设备授权key),保存了支持的设备信息。 | 远程设备开放->设备信息一览->EkiKey | 参考《6.3. 注册方法》章节 |
| 3 | packageSecret | 应用秘钥,在输入了android的应用包名后显示。 | 远程设备开放->开始集成->android->应用秘钥 | 参考《6.3. 注册方法》章节 |
| 4 | packageName | 应用包名(App包名) | 远程设备开放->开始集成->android->应用包名 | 参考《6.3. 注册方法》章节 |
| 5 | strLicense | 设备独立授权下载的离线License文件 | 远程设备开放->独立设备授权->License离线下载 | |
| 6 | thirdUserId | 第三方应用的用户识别码,可通过thirdUserId 锁定禁止用户使用sdk。thirdUserId长度不超过64位(非必填项)。 |
在MyApplication的onCreate()方法里面添加 OMRONLib.init(this);
样例
public class MyApplication extends LitePalApplication { public void onCreate() { super.onCreate(); LitePalApplication.initialize(this); OMRONLib.init(this,false,0); }}xxxxxxxxxx修改项目的applicationId,确保官网申请的安卓的应用包名与当前applicationId一致。
xxxxxxxxxximplementation 'com.google.code.gson:gson:2.8.6'implementation group: 'commons-codec', name: 'commons-codec', version: '1.14'implementation 'com.squareup.okhttp3:okhttp:3.4.2'implementation 'com.squareup.okhttp3:logging-interceptor:3.4.2'xxxxxxxxxx<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /><uses-permission android:name="android.permission.BLUETOOTH" /><uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED"/><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />样例
x<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- Android 12以下才需要定位权限, Android 9以下官方建议申请ACCESS_COARSE_LOCATION --><uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"android:maxSdkVersion="30" /><uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"android:maxSdkVersion="30" /><uses-permissionandroid:name="android.permission.BLUETOOTH"android:maxSdkVersion="30" /><uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN"android:maxSdkVersion="30" /><!-- Android 12在不申请定位权限时,必须加上android:usesPermissionFlags="neverForLocation",否则搜不到设备 --><uses-permissionandroid:name="android.permission.BLUETOOTH_SCAN"android:usesPermissionFlags="neverForLocation"tools:targetApi="s" /><uses-permissionandroid:name="android.permission.BLUETOOTH_CONNECT"tools:targetApi="s" />
<applicationandroid:name="com.omron.omronblesdkdemo.MyApplication"android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".activity.EntranceActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter></activity></application>xxxxxxxxxx private String[]mPermissions=new String[]{Manifest.permission.ACCESS_FINE_LOCATION};
private String[]mPermissions2=new String[]{Manifest.permission.BLUETOOTH_SCAN, Manifest.permission.BLUETOOTH_CONNECT};
/** * Android12权限,在init方法里添加 */ private void init(){ //android 12 需要权限 OHQDeviceManager.init(this); ... }
/** * 判断是否有SDK需要的权限,没有的话动态获取 */ private void initPermission(){ //清空已经允许的没有通过的权限 mPermissionList.clear(); //逐个判断是否还有未通过的权限 if(Build.VERSION.SDK_INT>=31){ for(String permission:mPermissions2){ if(ContextCompat.checkSelfPermission(this,permission)!=PackageManager.PERMISSION_GRANTED){ //添加还未授予的权限到mPermissionList中 mPermissionList.add(permission); } } }else{ for(String permission:mPermissions){ if(ContextCompat.checkSelfPermission(this,permission)!=PackageManager.PERMISSION_GRANTED){ //添加还未授予的权限到mPermissionList中 mPermissionList.add(permission); } } } if(mPermissionList.size()>0){ //有权限没有通过,需要申请 ActivityCompat.requestPermissions(this,mPermissionList.toArray(new String[0]),mRequestCode); }else{ //权限已经都通过了,可以将程序继续打开了 } }注意点:调用初始化方法之前必须先取得授权!!!
6.1 授权与用户管理配置
根据使用场景和网络依赖性,SDK 提供两种授权模式,区别如下:
| 特性 | 在线模式 | 离线模式 |
|---|---|---|
| 网络依赖 | 首次激活需联网验证,后续操作可离线使用 | 完全离线,无需任何网络连接 |
| 授权文件 | 无需预置文件,strLicense设置为空字符串 | 需预置离线授权文件(从管理门户下载)到/Android/data/<包名>/files/目录 |
| 用户限制功能 | 支持通过thirdUserId动态封禁用户(需联网同步黑名单) | 依赖本地授权文件,无法动态封禁用户 |
| 适用场景 | 需定期验证授权状态或动态管理用户权限的场景 | 无网络环境(如医疗设备专用平板)、对数据隐私要求极高的场景 |
| 激活方式 | 自动联网验证appKey和packageSecret | 通过读取本地授权文件激活 |
| 功能限制 | 支持远程更新设备授权列表 | 功能固定,无法远程更新授权 |
配置选择建议
优先选择在线模式
支持动态用户管理(如冻结异常账户)
自动适配最新设备授权规则
首次激活后仍可离线使用核心功能
强制离线场景选择离线模式
需提前在管理门户生成设备指纹绑定的授权文件
授权文件与设备强关联,不可跨设备复用
请根据使用场景选择对应的配置方式。
详细配置如下:
在线模式(无需离线授权文件)
xxxxxxxxxxstrLicense = ""; // 直接设置为空字符串离线模式(需预置授权文件)
文件准备 :从管理门户下载独立设备授权文件(格式示例:license.lic)
文件存放路径 :
/Android/data/<您的应用包名>/files/
(例如:/Android/data/com.example.app/files/license_12345.lic)
激活方式 :
xxxxxxxxxxString licenseContent = readFileContent("license_12345.lic"); // 自行实现文件读取omronlib.requestIdentifier(appKey, packageSecret, packageName, licenseContent, ...);用户权限控制(可选)
通过thirdUserId参数限制特定用户使用SDK。
xxxxxxxxxxString thirdUserId = "USER_001"; // 长度不超过64字符(字母/数字/下划线)omronlib.requestIdentifier(..., thirdUserId, ...);
注:被封禁用户将收到错误码26(`OMRON_BLE_ERROR_DEVICE_THIRD_USER_BLOCKED`)6.2 使用示例
xxxxxxxxxxpublic static OMRONLib omronlib;
// 在Activity的onCreate里面初始化omronlib,调用注册方法//初始化OMRONLib对象omronlib = OMRONLib.getInstance();
//注册SDK,通过IdentifierCallback接口返回成功或失败omronlib.requestIdentifier(appKey, packageSecret, packageName, strLicense, thirdUserId, new IdentifierCallback() { public void onSuccess() { //初始化成功 }
public void onFail(OMRONBLEErrMsg error) { //初始化失败 }});xxxxxxxxxxpublic interface BleScanCallback {
/*** 扫描到的设备* @param device 设备* @param rssi RSSI值* @param scanRecord scanRecord*/void onBleScan(BleScanDevice device, int rssi, byte[] scanRecord);
/*** 扫描结束*/void onCycleEnd();}样例:周期扫描绑定状态的设备接口调用
xxxxxxxxxxprivate static final int SCAN_PERIOD = 30;OMRONLib.getInstance().startBindScan(DeviceCategory.BODY, SCAN_PERIOD, mBleScanCallback);样例:周期扫描同步状态的设备接口调用
xxxxxxxxxxprivate static final int SCAN_PERIOD = 30;OMRONLib.getInstance().startSyncScan(List<BleScanDevice> deviceList, SCAN_PERIOD, mBleScanCallback);xxxxxxxxxxprivate OMRONLib.OmronBleCallBack myOmronBleCallBack = new OMRONLib.OmronBleCallBack() { public void onFailure(OMRONBLEErrMsg errMsg) {} public void onBindComplete(BpDeviceInfo deviceInfo){}; public void onDataReadComplete(BpDeviceInfo deviceInfo,List<BPData> data) {}};样例:同步血压数据接口调用
xxxxxxxxxxdeviceType = DeviceType.BLOOD_9200T;omronlib.getDeviceData(deviceType, deviceName, deviceAddress, myOmronBleCallBack);
xxxxxxxxxxOMRON_SDK_UnOpenBlueTooth(1, "蓝牙未开启,请开启蓝牙"),OMRON_BLE_ERROR_NOT_SUPPORT(2, "该设备不支持蓝牙"),OMRON_SDK_NoDevice(3, "扫描超时"),OMRON_SDK_InValidKey(4, "厂商ID 无效"),OMRON_SDK_ConnectFail(5, "连接失败"),OMRON_SDK_UnBind(6, "请先绑定正确的设备"),OMRON_SDK_UnRegister(7, "未注册"),OMRON_SDK_NoNet(8, "请在网络连接状态下进行操作"),OMRON_SDK_BindFail(9, "绑定失败"),OMRON_SDK_TRANSFERFAIL(10, "未找到设备同步失败"),OMRON_SDK_ADDRESS_EMPTY(11, "设备地址不存在"),OMRON_SDK_INVALID_DEVICE_ADDRESS(12,"无效的设备地址"),OMRON_BLE_ERROR_DEVICE_CAN_NOT_CONNECT(13,"无法与目标设备建立连接"),OMRON_BLE_ERROR_DEVICE_NOT_CONNECT(14,"设备未连接"),OMRON_BLE_ERROR_DEVICE_NOT_SUPPORT(15,"设备不支持该功能"),OMRON_BLE_ERROR_DEVICE_DISCOVER_SERVICE(16,"无法获取设备服务"),OMRON_BLE_ERROR_DEVICE_READ_ChARACTERISTIC(16,"无法读取信息"),OMRON_BLE_ERROR_DEVICE_WRITE_DESCRIPTOR(17,"无法更改描述"),OMRON_BLE_ERROR_DEVICE_BOND_FAILED(18,"配对失败"),OMRON_BLE_ERROR_PERMISSION_BLE(19, "需要打开附近的设备权限"),OMRON_BLE_ERROR_SYNC_EMPTY(20, "已同步至最新数据"),OMRON_BLE_ERROR_DEVICE_CATEGORY_NOT_SUPPORT(21, "不支持该设备类别"),OMRON_BLE_ERROR_DEVICE_TYPE_NOT_SUPPORT(22, "不支持该设备型号");OMRON_BLE_ERROR_DEVICE_BOND_STATE_ERROR(23, "绑定状态错误,请在蓝牙列表中取消配对后再试"),OMRON_BLE_ERROR_DEVICE_TYPE_EXPIRATION(24, "设备已过期,请延长使用期后继续使用"),OMRON_BLE_ERROR_DEVICE_FAILED_TO_OVER_FINGERPRINT(25, "指纹授权量超过"),OMRON_BLE_ERROR_DEVICE_THIRD_USER_BLOCKED(26, "当前用户已冻结")OMRON_BLE_ERROR_FILE_EMPTY(27, "请允许网络数据访问或者配置离线license文件")开始扫描时调用该接口
xxxxxxxxxxpublic interface BleScanDeviceCallback {
/*** 扫描到符合条件的设备后回调该接口,一次扫描周期中可能存在多次回调* @param device 设备* @param rssi RSSI值* @param scanRecord scanRecord*/void onBleScan(BleScanDevice device, int rssi, byte[] scanRecord);
/*** 扫描周期结束后回调该接口*/void onCycleEnd();
/*** 扫描失败、异常信息*/void onBleScanFailure(OMRONBLEErrMsg errMsg);}xxxxxxxxxxpublic interface OmronBpBleCallBack extends OMRONBLECallbackBase {public void onFailure(OMRONBLEErrMsg errMsg);
void onBindComplete(String deviceType, String deviceName, String address, DeviceInfo deviceInfo, List<BPData> bpDataList);
void onDataReadComplete(List<BPData> data);}xxxxxxxxxxOMRONBLEErrMsg 为异常情况返回绑定接口成功返回
xxxxxxxxxxdeviceType 设备型号deviceName 设备名称address 设备mac地址deviceInfo 血压设备信息bpDataList 血压测量数据同步数据成功返回
xxxxxxxxxxdata 血压测量数据xxxxxxxxxxpublic interface OmronBfBleCallBack extends OMRONBLECallbackBase {void onFailure(OMRONBLEErrMsg errMsg);void onBindBodyFatComplete(String deviceType, String deviceName, String userindex, String address, String sex, String height, String birthday, DeviceInfo deviceInfo, List<BodyfatData> bfDataList);void onBodyFatDataReadComplete(List<BodyfatData> data, String sex, String height, String birthday);void onScanBodyFatComplete();}xxxxxxxxxxOMRONBLEErrMsg为异常情况返回绑定接口成功返回
xxxxxxxxxxdeviceType 设备类型deviceName 设备名称userindex 设备机位address 设备mac地址sex 性别(Male,Female)height 身高birthday 生日deviceInfo 体脂设备信息bpDataList 体脂测量数据同步数据成功返回
xxxxxxxxxxdeviceType 设备类型deviceName 设备名称userindex 设备机位address 设备mac地址data 体脂测量数据sex 性别(Male,Female)height 身高birthday 生日xxxxxxxxxxpublic interface OmronBgBleCallBack extends OMRONBLECallbackBase {void onFailure(OMRONBLEErrMsg errMsg);void onBindComplete(String deviceType, String deviceName, String deviceAddress, List<BGData> dataList);
void onDataReadComplete(String deviceType, String deviceName, String deviceAddress, List<BGData> dataList);}xxxxxxxxxxOMRONBLEErrMsg为异常情况返回绑定接口成功返回
xxxxxxxxxxdeviceType 设备类型deviceName 设备名称deviceAddress 设备mac地址dataList 血糖测量数据同步数据成功返回
xxxxxxxxxxdeviceType 设备类型deviceName 设备名称deviceAddress 设备mac地址dataList 血糖测量数据xxxxxxxxxxpublic interface OmronBoBleCallBack extends OMRONBLECallbackBase {void onFailure(OMRONBLEErrMsg errMsg);void onBoComplete(String deviceType, String deviceName, String address, DeviceInfo deviceInfo, List<BoData> boDataList);void onBoDataReadComplete(String deviceType, String deviceName, String address, List<BoData> data);}xxxxxxxxxxOMRONBLEErrMsg为异常情况返回绑定接口成功返回
xxxxxxxxxxdeviceType 设备类型deviceName 设备名称deviceAddress 设备mac地址deviceInfo 血氧设备信息dataList 血氧测量数据同步数据成功返回
xxxxxxxxxxdeviceType 设备类型deviceName 设备名称deviceAddress 设备mac地址dataList 血糖测量数据xxxxxxxxxx// 血压数据public class BPData {//血压高压private int systolic;//低压private int diastolic;//脉搏private int pulse;//心率不齐状态private int arrhythmiaFlg; // 0: normal; 1 abnormal//身体移动状态private int bmFlg; // 0:not move; 1 move//臂带宽松状态private int cwsFlg; // 0: normal; 1 abnormal//测量使用者private int measureUser; // 0:unset; 1:userA; 2:userB//测量时间private long measureTime;//AF血压计三次测量private int afibMode;//房颤检测private int afibFlg;// 0: normal; 1 abnormal}xxxxxxxxxxpublic class BodyfatData {/*** 测量时间* */private String mMeasureTime;/*** 体重* */private String mWeight;/*** 体脂肪率* */private String mPercentage;/*** 骨骼肌率* */private String mSkeletal;/*** 基础代谢* */private String mBasal;/*** BMI* */private String mBmi;/*** 体年龄* */private String mAge;/*** 内脏脂肪* */private String mVisceral;}xxxxxxxxxxpublic class BGData {
/** Record sequence number */private int sequenceNumber;
/** The base time of the measurement */private Calendar time;
/** The glucose concentration. 0 if not present */private float glucoseConcentration;
/** mg/L mmol/L */private Unit unit;
/*** One of the following:<br/>* 0 未设定<br/>* 1 餐前<br/>* 2 餐后<br/>* 3 空腹<br/>*/private Meal meal;}xxxxxxxxxxpublic class BOData {//血氧饱和度private String mOxygen;
//脉搏private String mPulse;}xxxxxxxxxxpublic class DeviceInfo {// 设备类型private String modelName;// 设备序列号private String serialNumber;// 硬件版本号private String hardwareVersion;// 软件版本号private String softwareVersion;// 固件版本号private String firmwareVersion;// 设备电量private Integer batteryLevel;// 供电方式private String powerSupplyMode;// 制造商名称private String manufacturerName;// 设备代号private String modelNumber;// 设备系统IDprivate String systemID;}xxxxxxxxxxpublic @interface DeviceCategory {// 血压计int BLOOD_PRESSURE = 1;// 血糖仪int BLOOD_GLUCOSE = 2;// 体脂仪int BODY_FAT = 4;// 血氧仪int BLOOD_OXYGEN = 5;// 全部int ALL_SUPPORT = 0;}xxxxxxxxxxOMRONLibxxxxxxxxxxpublic static OMRONLib init( Context context)xxxxxxxxxxpublic static OMRONLib getInstance()离线激活认证方法:
xxxxxxxxxx appKey 开发者key packageSecret 应用秘钥 packageName 应用包名 strLicense 应用离线License文件内容,当选择在线激活方式时,可设置为空 thirdUserId 第三方客户应用下用户识别码,如果不使用用户限制功能,可设置为空public void requestIdentifier(String appKey, String packageSecret, String packageName, String strLicense, IdentifierCallback identifierCallback)xxxxxxxxxx type 设备类型 1、血压计 2、血糖计 4、体脂仪 设备型号名称列表List<String> getDeviceTypeList( int deviceCategory);扫描指定类别的设备,不区分设备绑定状态和同步状态,不推荐
xxxxxxxxxx type 设备类型 scanPeriod 扫描周期,最小1s,最大300s deviceAddress 设备mac地址 callback 扫描回调void startScan( int type, (min = 1, max = 300) int scanPeriod, String deviceAddress, BleScanDeviceCallback callback);扫描指定类别的绑定状态的设备
xxxxxxxxxx deviceCategory 要扫描的绑定状态的设备类别 scanPeriod 扫描周期,最小1s,最大300s callback 扫描回调void startBindScan( int deviceCategory, (min = 1, max = 300) int scanPeriod, BleScanDeviceCallback callback)扫描已绑定的同步状态中的设备
xxxxxxxxxx deviceList 要扫描的同步状态的设备 scanPeriod 扫描周期,最小1s,最大300s callback 扫描回调void startSyncScan(List<BleScanDevice> deviceList, (min = 1, max = 300) int scanPeriod, BleScanDeviceCallback callback)所有扫描通用停止方法
xxxxxxxxxxvoid stopScan();xxxxxxxxxx deviceType 设备类型 callback 回调接口 deviceAddress 设备mac地址 可为空void bindBpDevice( String deviceType, OmronBpBleCallBack callback, String deviceAddress);同步血压计测量数据:同步到血压计所有未同步过的血压数据。
xxxxxxxxxx context deviceType 设备类型 deviceName 设备名称 deviceAddress 设备mac地址 callback 回调接口void getBpDeviceData( String deviceType, String deviceName, String deviceAddress, OmronBpBleCallBack callback);xxxxxxxxxxvoid stopBpConnect();调用该接口前须确保蓝牙开启;该接口不可与其他设备监听和数据同步接口同时使用。同步血压计所有未同步过的血压数据。 旧版方法,只能监听一个设备,不推荐。
xxxxxxxxxx deviceType 设备类型 deviceName 设备名称 deviceAddress 设备mac地址 callBack 回调函数void startBpMonitoring( String deviceType, String deviceName, String deviceAddress, OmronBpBleCallBack callback);调用该接口前须确保蓝牙开启;该接口不可与其他设备监听和数据同步接口同时使用。同步血压计所有未同步过的血压数据。 可以同时监听多个设备,推荐。
xxxxxxxxxx deviceList 要监听的血压设备 callBack 回调函数void startBpMonitoring( List<BleScanDevice> deviceList, OmronBpBleCallBack callBack)根据当前数据同步结果判断是否需要开启下次监听:
OMRON_SDK_NoDevice、OMRON_SDK_ConnectFail、OMRON_SDK_TRANSFERFAIL和数据同步成功后继续监听,其他异常情况下停止监听
所有血压设备监听通用停止方法,退出监听时必须调用
xxxxxxxxxxvoid stopBpMonitoring();xxxxxxxxxx deviceType 设备类型 callback 绑定回调 birthday 生日 sex 性别 height 身高void bindBfDevice( String deviceType, OmronBfBleCallBack callback,String birthday, String sex, String height);xxxxxxxxxx userIndex 设备机位 1、2、3、4void bindBfUserIndex(int userIndex);xxxxxxxxxx mDeviceType 设备类型 deviceAddress 设备mac地址 callback 回调接口 userIndex 设备机位 birthday 生日 sex 性别 height 身高 deviceId 设备IDvoid getBfDeviceData( String deviceType, String deviceAddress, OmronBfBleCallBack callback,int userIndex, String birthday, String sex, String height, String deviceId);xxxxxxxxxxvoid stopBfConnect();调用该接口前须确保蓝牙开启;该接口不可与其他设备监听和数据同步接口同时使用;
根据当前数据同步结果判断是否需要开启下次监听:
OMRON_SDK_NoDevice、OMRON_SDK_ConnectFail、OMRON_SDK_TRANSFERFAIL和数据同步成功后继续监听,其他异常情况下停止监听
旧版方法,只能监听一个设备,不推荐。
xxxxxxxxxx mDeviceType 设备类型 deviceAddress 设备mac地址 callback 数据回调 userIndex 设备机位 birthday 用户生日 sex 用户性别 height 用户身高 deviceId 设备唯一标识void startBfMonitoring( String deviceType, String deviceAddress, OmronBfBleCallBack callback, int userIndex, String birthday, String sex, String height, String deviceId);可以同时监听多个设备,推荐。
xxxxxxxxxx deviceList 要监听的体脂设备 callback 数据回调 birthday 用户生日 sex 用户性别 height 用户身高void startBfMonitoring( List<BleScanDevice> deviceList, OmronBfBleCallBack callback, String birthday, String sex, String height)所有体脂设备监听通用停止方法,退出监听时必须调用
xxxxxxxxxxvoid stopBfMonitoring();xxxxxxxxxx deviceType 设备类型 callBack 绑定回调函数 device BluetoothDevicevoid bindBgDevice( String deviceType, BluetoothDevice device, OmronBgBleCallBack callBack);xxxxxxxxxx deviceType 设备类型 callBack 绑定回调函数 device BluetoothDevicevoid getBgDeviceData( String deviceType, BluetoothDevice device, OmronBgBleCallBack callBack);xxxxxxxxxxvoid stopBgConnect();调用该接口前须确保蓝牙开启;该接口不可与其他设备监听和数据同步接口同时使用;
根据当前数据同步结果判断是否需要开启下次监听:
OMRON_SDK_NoDevice、OMRON_SDK_ConnectFail、OMRON_SDK_TRANSFERFAIL和数据同步成功后继续监听,其他异常情况下停止监听
旧版方法,只能监听一个设备,不推荐。
xxxxxxxxxx mDeviceType 设备类型 deviceAddress 设备mac地址 callback 数据回调void startBgMonitoring( String deviceType, String deviceAddress, OmronBgBleCallBack callBack);可以同时监听多个设备,推荐。
xxxxxxxxxx deviceList 要监听的血糖设备 callback 数据回调void startBgMonitoring( List<BleScanDevice> deviceList, OmronBgBleCallBack callBack)所有血糖设备监听通用停止方法,退出监听时必须调用
xxxxxxxxxxvoid stopBgMonitoring();xxxxxxxxxx deviceType 设备类型 callBack 绑定回调函数void bindBoDevice( String deviceType, OmronBoBleCallBack callback);xxxxxxxxxx deviceType 设备类型 deviceName 设备名称 deviceAddress 设备mac地址 callBack 绑定回调函数 device BluetoothDevicevoid getBoDeviceData( String deviceType, String deviceName , String deviceAddress, OmronBoBleCallBack callback);xxxxxxxxxxvoid stopBoConnect();调用该接口前须确保蓝牙开启;该接口不可与其他设备监听和数据同步接口同时使用;
根据当前数据同步结果判断是否需要开启下次监听:
OMRON_SDK_NoDevice、OMRON_SDK_ConnectFail、OMRON_SDK_TRANSFERFAIL和数据同步成功后继续监听,其他异常情况下停止监听
可以同时监听多个设备。
xxxxxxxxxx deviceList 要监听的血氧设备 callback 数据回调void startBoMonitoring( List<BleScanDevice> deviceList, OmronBoBleCallBack callback)退出监听时必须调用
xxxxxxxxxxvoid stopBoMonitoring();xxxxxxxxxx示例OMRONLib.getInstance().setStatusBlock((OmronStateEnum type)->{ BleLog.w("OMRONLib", "setStatusBlock "+type);});
/** * OmronStateEnum 说明 * OMRONLIB_SCAN, //开始扫描 OMRONLIB_CONNECT, //开始链接 OMRONLIB_SYNC_DATA, //开始数据同步 OMRONLIB_SYNC_DATA_SUCCESS, //数据同步成功 OMRONLIB_SYNC_DATA_ERROR, //数据同步失败 OMRONLIB_DISCONNECTED; //断开链接 **/xxxxxxxxxxvoid setStatusBlock(MonitorStatusBlock monitor)xxxxxxxxxxvoid remStatusBlock(MonitorStatusBlock monitor)xxxxxxxxxxOMRONLOG_NONE("0","不可见"),OMRONLOG_ALL("1","可见"),OMRONLOG_HALF("2","部分可见");样例
xxxxxxxxxxOmronLogVisibleUtil.setLogType(OMRONLOGENUM.OMRONLOG_HALF);样例
xxxxxxxxxxOMRONLib.setLimitation(OmronLogLevelEnum.WARN);/** 日志等级 * OmronLogLevelEnum: WARN(3), ERROR(4), FATAL(5);*/xxxxxxxxxxString getDeviceFinger();样例:
xxxxxxxxxxOMRONLib.getInstance().getDeviceFinger();DEMO的个人信息主要针对个人,绑定多台设备时,所有设备将同步为同一份个人信息
绑定时设备,demo会把个人信息界面输入的个人信息写入设备
设备个人信息更改,demo个人信息未更改,同步时会读出设备里面的个人信息,并返回
设备个人信息未更改,demo个人信息更改,同步时会往设备里面写入demo更改的个人信息
设备更改一次,demo同时更改个人信息,同步时会往设备里面写入demo更改的个人信息
设备更改多次,demo同时更改个人信息,同步时会读出设备里面的个人信息