xxxxxxxxxx本SDK主要提供欧姆龙血压计、血糖仪、体脂仪、血氧仪的绑定、同步数据功能。开发者从插件市场下载插件导入项目中,通过调用插件sdk提供的接口方法,实现对血压、血糖、体脂和血氧设备的操控。
V1.0.0
https://ext.dcloud.net.cn/plugin?id=22804
xxxxxxxxxxandroid.permission.ACCESS_COARSE_LOCATIONandroid.permission.ACCESS_FINE_LOCATIONandroid.permission.BLUETOOTHandroid.permission.BLUETOOTH_ADMINandroid.permission.BLUETOOTH_PRIVILEGEDandroid.permission.BLUETOOTH_SCANandroid.permission.BLUETOOTH_CONNECT
从插件市场下载插件并导入项目中。
修改项目的applicationId,确保官网申请的安卓的应用包名与当前applicationId一致。
注意点:调用初始化方法之前必须先取得授权!!!
3.1.1 授权与用户管理配置
根据使用场景和网络依赖性,SDK 提供两种授权模式,区别如下:
| 特性 | 在线模式 | 离线模式 |
|---|---|---|
| 网络依赖 | 首次激活需联网验证,后续操作可离线使用 | 完全离线,无需任何网络连接 |
| 授权文件 | 无需预置文件,strLicense设置为空字符串 | 需预置离线授权文件(从管理门户下载)到/Android/data/<包名>/files/目录 |
| 用户限制功能 | 支持通过thirdUserId动态封禁用户(需联网同步黑名单) | 依赖本地授权文件,无法动态封禁用户 |
| 适用场景 | 需定期验证授权状态或动态管理用户权限的场景 | 无网络环境(如医疗设备专用平板)、对数据隐私要求极高的场景 |
| 激活方式 | 自动联网验证appKey和packageSecret | 通过读取本地授权文件激活 |
| 功能限制 | 支持远程更新设备授权列表 | 功能固定,无法远程更新授权 |
配置选择建议
优先选择在线模式
支持动态用户管理(如冻结异常账户)
自动适配最新设备授权规则
首次激活后仍可离线使用核心功能
强制离线场景选择离线模式
需提前在管理门户生成设备指纹绑定的授权文件
授权文件与设备强关联,不可跨设备复用
请根据使用场景选择对应的配置方式。
详细配置如下:
在线模式(无需离线授权文件)
xxxxxxxxxxstrLicense = ""; // 直接设置为空字符串离线模式(需预置授权文件)
文件准备 :从管理门户下载独立设备授权文件(格式示例:license.lic)
文件存放路径 :
/Android/data/<您的应用包名>/files/
(例如:/Android/data/com.example.app/files/license.lic)
激活方式 :
xxxxxxxxxxAPP.vueglobalData{ ... licenseName: 'license.lic',//默认名称 strLicense: '', //离线情况下 存储license.lic 文件内容 ...}
const strLicense = await getLicenseContent(licenseName);requestIdentifier(appKey, packageSecret, packageName, strLicense, thirdUserId, { success(res) { console.log(res.msg) }, fail(res) { console.log(res.msg) },});用户权限控制(可选)
通过thirdUserId参数限制特定用户使用SDK。
xxxxxxxxxxString thirdUserId = "USER_001"; // 长度不超过64字符(字母/数字/下划线)requestIdentifier(..., thirdUserId, ...);
注:被封禁用户将收到错误码26(`OMRON_BLE_ERROR_DEVICE_THIRD_USER_BLOCKED`)3.1.2 使用示例
SDK初始化
在App.vue的onLaunch()方法里面添加以下代码:
xxxxxxxxxximport { init } from "@/uni_modules/omron-blesdk";
样例
xxxxxxxxxximport { init } from "@/uni_modules/omron-blesdk";
// 初始化方法initFun(){ let that = this; // SDK 初始化 init({ success(res) { console.log('[init] === success'); console.log(res) that.getFinger() that.setBleStatus() that.register() that.setLogTypes() that.setLimitations() }, fail(res) { console.log('[init] === fail'); console.log(res) }, })},
注册激活
xxxxxxxxxximport { requestIdentifier } from "@/uni_modules/omron-blesdk";
async register(){ const activeType = 1; // 1在线 0离线 const appKey= ''; // 开发者key const packageSecret = ''; // 应用秘钥 const packageName = ''; // 应用包名 const strLicense = ''; // 应用离线License文件内容 const thirdUserId = ''; // 第三方客户应用下用户识别码 const licenseName = 'license.lic' //license文件名 if(activeType == 0){ strLicense = await getLicenseContent(licenseName); }
requestIdentifier(appKey, packageSecret, packageName, activeType ? '' : strLicense, thirdUserId, { success(res) { console.log(res.msg) }, fail(res) { console.log(res.msg) }, });},接口文档:插件接口文档
使用方法:
在需要使用插件的页面加载以下代码。
xxxxxxxxxximport * from "@/uni_modules/omron-blesdk";
仅提供了部分示例,完整示例请参考Demo
示例
xxxxxxxxxx<script>import {init,startBindScan,bindBpDevice} from "@/uni_modules/omron-blesdk";let that = this;export default {data() {return {devices: []}},mounted() {// 初始化SDKinit({success: () => {that.startScan();},fail: (err) => {uni.showToast({ title: '初始化失败' });}});},methods: {// 启动设备扫描startScan() {let that = this;startBindScan(1, 10, { // 1对应血压设备类别success: (devices) => {that.devices = devices;},fail: (err) => {console.error('扫描错误:', err);}});},// 连接绑定设备connectDevice(device) {bindBpDevice(device.type, {success: () => {uni.showToast({ title: '绑定成功' });},fail: (err) => {uni.showToast({ title: `绑定失败:${err.code}` });}}, device.address);}},beforeDestroy() {// 停止扫描stopScan();}}</script>
具体方法返回的结果可参考插件接口文档