跳转到内容

传感器

{ "name": "blueos.hardware.sensor.sensor" }
import sensor from '@blueos.hardware.sensor.sensor' const sensor = require('@blueos.hardware.sensor.sensor')

订阅加速度传感器数据,如果多次调用,仅最后一次调用生效

说明:

  • 加速度是重力加速度和设备自身运动加速度的矢量叠加
  • 当设备静止或做匀速直线运动时,返回的加速度值表示重力加速度。
参数名类型必填说明
intervalString监听加速度数据回调函数的执行频率,默认 normal
callbackFunction加速度感应数据变化后会回调此函数。
failFunction失败回调
参数名类型说明
xNumberx 轴加速度
yNumbery 轴加速度
zNumberz 轴加速度

interval 的合法值:

说明
game适用于更新游戏的回调频率,在 20ms/次 左右
ui适用于更新 UI 的回调频率,在 60ms/次 左右
normal普通的回调频率,在 200ms/次 左右
错误码说明
1000当前设备不支持重力感应传感器
sensor.subscribeAccelerometer({
callback: function (ret) {
console.log(`handling callback, x = ${ret.x}, y = ${ret.y}, z = ${ret.z}`)
},
fail: function (data, code) {
console.log(`handling fail, code = ${code}`)
},
})

取消监听重力感应数据

sensor.unsubscribeAccelerometer()

监听罗盘数据。如果多次调用,仅最后一次调用生效

参数名类型必填说明
callbackFunction罗盘数据变化后会回调此函数。
failFunction失败回调
参数名类型说明
directionNumber表示设备的 y 轴和地球磁场北极之间的角度,当面朝北,角度为 0;朝南角度为 π;朝东角度 π/2;朝西角度-π/2
accuracyNumber精度
错误码说明
1000当前设备不支持罗盘传感器
说明
3高精度
2中等精度
1低精度
-1不可信,传感器失去连接
0不可信,原因未知
sensor.subscribeCompass({
callback: function (ret) {
console.log(`handling callback, direction = ${ret.direction}`)
},
fail: function (data, code) {
console.log(`handling fail, code = ${code}`)
},
})

取消监听罗盘数据

sensor.unsubscribeCompass()

监听计步传感器数据。如果多次调用,仅最后一次调用生效。

开发者需要在 manifest.json 里面配置权限:

Section titled “开发者需要在 manifest.json 里面配置权限:”
{
"permissions": [{ "name": "watch.permission.STEP_COUNTER" }]
}
参数名类型必填说明
callbackFunction计步传感器数据变化后会回调此函数。
failFunction失败回调
参数名类型说明
stepsNumber计步传感器当前累计记录的步数。每次手表重启,这个值就会从 0 开始重新计算。
错误码说明
1000当前设备不支持计步传感器
sensor.subscribeStepCounter({
callback: function (ret) {
console.log(`handling callback, steps = ${ret.steps}`)
},
fail: function (data, code) {
console.log(`handling fail, code = ${code}`)
},
})

取消监听计步传感器数据。

sensor.unsubscribeStepCounter()

监听设备佩戴状态传感器数据。如果多次调用,仅最后一次调用生效。

参数名类型必填说明
callbackFunction穿戴状态改变后的回调函数。
failFunction接口调用失败的回调函数。
参数名类型说明
valueboolean是否已佩戴。
错误码说明
1000当前设备不支持佩戴状态传感器
sensor.subscribeOnBodyState({
callback: function (ret) {
console.log('get on-body state value:' + ret.value)
},
fail: function (data, code) {
console.log('Subscription failed. Code: ' + code + '; Data: ' + data)
},
})

取消监听设备佩戴状态。

sensor.unsubscribeOnBodyState()

获取设备佩戴状态。

参数名类型必填说明
successFunction接口调用成功的回调函数。
failFunction接口调用失败的回调函数。
completeFunction接口调用结束的回调函数。
参数名类型说明
valueboolean是否已佩戴。
错误码说明
1000当前设备不支持佩戴状态传感器
sensor.getOnBodyState({
success: function (ret) {
console.log('on body state: ' + ret.value)
},
fail: function (data, code) {
console.log('Subscription failed. Code: ' + code + '; Data: ' + data)
},
})

监听陀螺仪传感器数据。如果多次调用,仅最后一次调用生效。

参数名类型必填说明
callbackFunction陀螺仪传感器数据改变后的回调函数。
failFunction接口调用失败的回调函数。
参数名类型说明
xNumberx 轴坐标
yNumbery 轴坐标
zNumberz 轴坐标
错误码说明
1000当前设备不支持陀螺仪传感器
sensor.subscribeGyroscope({
callback: function (ret) {
console.log(`handling callback, x = ${ret.x}, y = ${ret.y}, z = ${ret.z}`)
},
fail: function (data, code) {
console.log(`handling fail, code = ${code}`)
},
})

取消监听陀螺仪数据。

sensor.unsubscribeGyroscope()

监听气压传感器数据。如果多次调用,仅最后一次调用生效。

参数名类型必填说明
callbackFunction气压传感器数据改变后的回调函数。
failFunction接口调用失败的回调函数。
参数名类型说明
pressureNumber气压值,单位:帕斯卡。
错误码说明
1000当前设备不支持气压传感器
sensor.subscribeBarometer({
callback: function (ret) {
console.log('get data value:' + ret.pressure)
},
fail: function (data, code) {
console.log('Subscription failed. Code: ' + code + '; Data: ' + data)
},
})

取消监听气压传感器。

sensor.unsubscribeBarometer()

监听抬腕。如果多次调用,仅最后一次调用生效。

参数名类型必填说明
callbackFunction抬腕后的回调函数。
failFunction接口调用失败的回调函数。

错误码说明
1000当前设备不支持
sensor.subscribeWristLift({
callback: function () {
console.log('wrist lift')
},
fail: function (data, code) {
console.log('Subscription failed. Code: ' + code + '; Data: ' + data)
},
})

取消监听监听抬腕。

sensor.unsubscribeWristLift()

sensor.subscribeContinuousWristTurn(OBJECT)

Section titled “sensor.subscribeContinuousWristTurn(OBJECT)”

监听连续转腕。如果多次调用,仅最后一次调用生效。

参数名类型必填说明
callbackFunction连续转腕变后的回调函数。
failFunction接口调用失败的回调函数。

错误码说明
1000当前设备不支持
sensor.subscribeContinuousWristTurn({
callback: function () {
console.log('continuous wrist turn')
},
fail: function (data, code) {
console.log('Subscription failed. Code: ' + code + '; Data: ' + data)
},
})

取消监听连续转腕。

sensor.unsubscribeContinuousWristTurn()