教程 框架 组件 接口 工具 其他

传感器 sensor

接口声明

{ "name": "system.sensor" }

导入模块

import sensor from '@system.sensor'const sensor = require('@system.sensor')

接口定义

sensor.subscribeAccelerometer(OBJECT)

监听重力感应数据。如果多次调用,仅最后一次调用生效

参数:

参数名类型必填说明
reserved 1050+Boolean是否持久化订阅,默认为 false。机制:设置为 true,页面跳转,不会自动取消订阅,需手动取消订阅
interval 1060+String监听加速度数据回调函数的执行频率,默认normal
callbackFunction重力感应数据变化后会回调此函数。

interval 的合法值:

说明
game适用于更新游戏的回调频率,在 20ms/次 左右
ui适用于更新 UI 的回调频率,在 60ms/次 左右
normal普通的回调频率,在 200ms/次 左右
callback 返回值:
参数名类型说明
xIntegerx 轴坐标
yIntegery 轴坐标
zIntegerz 轴坐标

示例:

sensor.subscribeAccelerometer({
  callback: function(ret) {
    console.log(`handling callback, x = ${ret.x}, y = ${ret.y}, z = ${ret.z}`)
  }
})

sensor.unsubscribeAccelerometer()

取消监听重力感应数据

参数:

示例:

sensor.unsubscribeAccelerometer()

sensor.subscribeCompass(OBJECT)

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

参数:

参数名类型必填说明
reserved 1050+Boolean是否持久化订阅,默认为 false。机制:设置为 true,页面跳转,不会自动取消订阅,需手动取消订阅
callbackFunction罗盘数据变化后会回调此函数。
callback 返回值:
参数名类型说明
directionNumber表示设备的y轴和地球磁场北极之间的角度,当面朝北,角度为0;朝南角度为π;朝东角度π/2;朝西角度-π/2
accuracy 1080+Number精度
说明
3高精度
2中等精度
1低精度
-1不可信,传感器失去连接
0不可信,原因未知

示例:

sensor.subscribeCompass({
  callback: function(ret) {
    console.log(`handling callback, direction = ${ret.direction}`)
  }
})

sensor.unsubscribeCompass()

取消监听罗盘数据

参数:

示例:

sensor.unsubscribeCompass()

sensor.subscribeProximity(OBJECT)1000+

监听距离感应数据。如果多次调用,仅最后一次调用生效。

参数:

参数名类型必填说明
reserved 1050+Boolean是否持久化订阅,默认为 false。机制:设置为 true,页面跳转,不会自动取消订阅,需手动取消订阅
callbackFunction距离感应数据变化后会回调此函数。
callback 返回值:
参数名类型说明
distanceNumber手机距离,单位为 cm。
fail 返回错误代码
错误码说明
203当前设备不支持距离传感器

示例:

sensor.subscribeProximity({
  callback: function(ret) {
    console.log(`handling callback, distance = ${ret.distance}`)
  }
})

sensor.unsubscribeProximity()1000+

取消监听距离感应数据。

参数:

示例:

sensor.unsubscribeProximity()

sensor.subscribeLight(OBJECT)1000+

监听光线感应数据。如果多次调用,仅最后一次调用生效。

参数:

参数名类型必填说明
reserved 1050+Boolean是否持久化订阅,默认为 false。机制:设置为 true,页面跳转,不会自动取消订阅,需手动取消订阅
callbackFunction光线感应数据变化后会回调此函数。
callback 返回值:
参数名类型说明
intensityNumber光线强度,单位为 lux

示例:

sensor.subscribeLight({
  callback: function(ret) {
    console.log(`handling callback, intensity = ${ret.intensity}`)
  }
})

sensor.unsubscribeLight()1000+

取消监听光线感应数据。

参数:

示例:

sensor.unsubscribeLight()

sensor.subscribeStepCounter(OBJECT)1050+

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

参数:

参数名类型必填说明
reserved 1050+Boolean是否持久化订阅,默认为 false。机制:设置为 true,页面跳转,不会自动取消订阅,需手动取消订阅
callbackFunction计步传感器数据变化后会回调此函数。
failFunction失败回调
callback 返回值:
参数名类型说明
stepsNumber计步传感器当前累计记录的步数。每次手机重启,这个值就会从 0 开始重新计算。
fail 返回错误代码
错误码说明
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()1050+

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

参数:

示例:

sensor.unsubscribeStepCounter()

后台运行限制

无限制。 后台运行详细用法参见后台运行 脚本

条匹配 "" 的结果

    没有搜索到与 "" 相关的内容