You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
3.1 KiB
136 lines
3.1 KiB
let bluetooth = {}
|
|
|
|
/**
|
|
* 是否授权蓝牙(兼容微信小程序,其他平台未做兼容)
|
|
* @date 2022-12-08
|
|
*/
|
|
bluetooth.isAuth = function() {
|
|
return new Promise((resolve, reject) => {
|
|
// #ifdef MP-WEIXIN
|
|
uni.getSetting({
|
|
success(res) {
|
|
// 没有蓝牙权限
|
|
if (!res.authSetting['scope.bluetooth']) {
|
|
// 提前向用户发起授权请求
|
|
uni.authorize({
|
|
scope: 'scope.bluetooth',
|
|
success(res) {
|
|
console.log('--请求权限成功--', res)
|
|
resolve(true)
|
|
},
|
|
fail(res) {
|
|
console.log('--请求权限失败--', res)
|
|
uni.showModal({
|
|
title: "您已拒绝蓝牙权限",
|
|
content: "是否进入权限管理,调整授权?",
|
|
success(res) {
|
|
if (res.confirm) {
|
|
// 打开设置界面,引导用户开启授权
|
|
uni.openSetting({
|
|
success(res) {
|
|
reject(false)
|
|
}
|
|
})
|
|
} else {
|
|
reject(false)
|
|
}
|
|
}
|
|
})
|
|
},
|
|
complete(res) {
|
|
// console.log('authorizeComplete', res)
|
|
}
|
|
})
|
|
} else {
|
|
resolve(true)
|
|
}
|
|
}
|
|
})
|
|
// #endif
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 初始化蓝牙
|
|
* @date 2022-12-08
|
|
*/
|
|
bluetooth.init = function() {
|
|
return new Promise((resolve, reject) => {
|
|
// 初始化蓝牙
|
|
uni.openBluetoothAdapter({
|
|
success(res) {
|
|
console.log('--初始化蓝牙成功--', res)
|
|
resolve(res)
|
|
},
|
|
fail(err) {
|
|
console.log('--初始化蓝牙失败--', err)
|
|
reject(err)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 开始搜寻附近的蓝牙外围设备
|
|
* @param {array} services 要搜索的蓝牙设备主 service 的 uuid 列表
|
|
* @date 2022-12-08
|
|
*/
|
|
bluetooth.startDiscovery = function(services = []) {
|
|
return new Promise((resolve, reject) => {
|
|
// 开始搜寻附近的蓝牙外围设备
|
|
uni.startBluetoothDevicesDiscovery({
|
|
services: services,
|
|
success(res) {
|
|
console.log('--开始搜寻附近的蓝牙外围设备成功--', res)
|
|
resolve(res)
|
|
},
|
|
fail(err) {
|
|
console.log('--开始搜寻附近的蓝牙外围设备失败--', err)
|
|
reject(err)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 停止搜寻附近的蓝牙外围设备
|
|
* @date 2022-12-08
|
|
*/
|
|
bluetooth.stopDiscovery = function() {
|
|
return new Promise((resolve, reject) => {
|
|
// 停止搜寻附近的蓝牙外围设备
|
|
uni.stopBluetoothDevicesDiscovery({
|
|
success(res) {
|
|
console.log('--停止搜寻附近的蓝牙外围设备成功--', res)
|
|
resolve(res)
|
|
},
|
|
fail(err) {
|
|
console.log('--停止搜寻附近的蓝牙外围设备失败--', err)
|
|
reject(err)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 获取在蓝牙模块生效期间所有已发现的蓝牙设备
|
|
* @date 2022-12-08
|
|
*/
|
|
bluetooth.getDevices = function() {
|
|
return new Promise((resolve, reject) => {
|
|
// 获取在蓝牙模块生效期间所有已发现的蓝牙设备
|
|
uni.getBluetoothDevices({
|
|
success(res) {
|
|
console.log('--获取在蓝牙模块生效期间所有已发现的蓝牙设备成功--', res)
|
|
resolve(res)
|
|
},
|
|
fail(err) {
|
|
console.log('--获取在蓝牙模块生效期间所有已发现的蓝牙设备失败--', err)
|
|
reject(err)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
export default bluetooth
|