xxxxxxxxxx
本SDK主要提供欧姆龙血压计、血糖仪、体脂仪、血氧仪的绑定、同步数据功能。
开发者从插件市场下载插件导入项目中,通过调用插件sdk提供的接口方法,实现对血压、血糖、体脂和血氧设备的操控。
V1.0.0
https://ext.dcloud.net.cn/plugin?id=22804
xxxxxxxxxx
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_FINE_LOCATION
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BLUETOOTH_PRIVILEGED
android.permission.BLUETOOTH_SCAN
android.permission.BLUETOOTH_CONNECT
从插件市场下载插件并导入项目中。
修改项目的applicationId,确保官网申请的安卓的应用包名与当前applicationId一致。
注意点:调用初始化方法之前必须先取得授权!!!
3.1.1 授权与用户管理配置
根据使用场景和网络依赖性,SDK 提供两种授权模式,区别如下:
特性 | 在线模式 | 离线模式 |
---|---|---|
网络依赖 | 首次激活需联网验证,后续操作可离线使用 | 完全离线,无需任何网络连接 |
授权文件 | 无需预置文件,strLicense 设置为空字符串 | 需预置离线授权文件(从管理门户下载)到/Android/data/<包名>/files/ 目录 |
用户限制功能 | 支持通过thirdUserId 动态封禁用户(需联网同步黑名单) | 依赖本地授权文件,无法动态封禁用户 |
适用场景 | 需定期验证授权状态或动态管理用户权限的场景 | 无网络环境(如医疗设备专用平板)、对数据隐私要求极高的场景 |
激活方式 | 自动联网验证appKey 和packageSecret | 通过读取本地授权文件激活 |
功能限制 | 支持远程更新设备授权列表 | 功能固定,无法远程更新授权 |
配置选择建议
优先选择在线模式
支持动态用户管理(如冻结异常账户)
自动适配最新设备授权规则
首次激活后仍可离线使用核心功能
强制离线场景选择离线模式
需提前在管理门户生成设备指纹绑定的授权文件
授权文件与设备强关联,不可跨设备复用
请根据使用场景选择对应的配置方式。
详细配置如下:
在线模式(无需离线授权文件)
xxxxxxxxxx
strLicense = ""; // 直接设置为空字符串
离线模式(需预置授权文件)
文件准备 :从管理门户下载独立设备授权文件(格式示例:license.lic
)
文件存放路径 :
/Android/data/<您的应用包名>/files/
(例如:/Android/data/com.example.app/files/license.lic
)
激活方式 :
xxxxxxxxxx
APP.vue
globalData{
...
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。
xxxxxxxxxx
String thirdUserId = "USER_001"; // 长度不超过64字符(字母/数字/下划线)
requestIdentifier(..., thirdUserId, ...);
注:被封禁用户将收到错误码26(`OMRON_BLE_ERROR_DEVICE_THIRD_USER_BLOCKED`)
3.1.2 使用示例
SDK初始化
在App.vue的onLaunch()方法里面添加以下代码:
xxxxxxxxxx
import { init } from "@/uni_modules/omron-blesdk";
样例
xxxxxxxxxx
import { 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)
},
})
},
注册激活
xxxxxxxxxx
import { 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)
},
});
},
接口文档:插件接口文档
使用方法:
在需要使用插件的页面加载以下代码。
xxxxxxxxxx
import * 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() {
// 初始化SDK
init({
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>
具体方法返回的结果可参考插件接口文档