Skip to content

传感器 Sensors

Sensors 封装设备传感器只读采样。先 list / has 确认设备支持,再 register 回调;用 catalog() 查看类型说明。脚本结束会自动取消全部监听。

javascript
if (Sensors.has('accelerometer')) {
  Sensors.register('accelerometer', function (e) {
    console.log(e.values);
  });
}
方法作用
list()本机可用传感器别名
catalog()已知类型目录(说明与 values 含义)
has(type)是否存在该类型
register(type, callback, delayMs?)注册监听
unregister(type)取消指定类型
unregisterAll()取消全部

类型目录

type别名说明values
accelerometeracc加速度计(含重力)[0]=x,[1]=y,[2]=z,m/s²
gyroscopegyro陀螺仪(角速度)[0]=x,[1]=y,[2]=z,rad/s
lightlight_sensor环境光[0] 光照,lx
proximity距离/接近(听筒遮挡)[0] cm;部分机型仅远/近
magnetic_fieldmagnetic / magnetometer磁场[0]=x,[1]=y,[2]=z,μT
gravity重力加速度[0]=x,[1]=y,[2]=z,m/s²
linear_acceleration线性加速度(已扣重力)[0]=x,[1]=y,[2]=z,m/s²
rotation_vector旋转矢量(姿态)[0..2] 分量,[3] 可选标量
step_counter计步累计(开机以来)[0] 累计步数;Android 10+ 需活动识别权限
step_detector单步检测[0]=1.0 表示一步;同上权限
pressure气压[0] hPa
humidityrelative_humidity相对湿度[0] %
temperatureambient_temperature环境温度[0]

也可用 type_<数字> 按 Android 传感器类型常量注册。

javascript
console.log(Sensors.catalog());

list()

返回: {string[]} 本机可用传感器别名

javascript
console.log(Sensors.list());

catalog()

返回: {object[]} 每项含 typealiasesdescriptionvalues

不依赖本机是否具备该传感器,用于查阅说明。

has(type)

参数: type {string} 类型别名

返回: {boolean}

register(type, callback, delayMs?)

参数:

  • type {string} 类型别名
  • callback {function} 回调,参数为事件对象
  • delayMs {number} 可选,采样间隔毫秒;省略或 <= 0 用默认 UI 延迟

返回: {boolean} 是否注册成功

回调对象字段:

字段说明
valuesnumber[] 读数(含义见类型目录)
timestamp时间戳
accuracy精度
type类型别名
javascript
Sensors.register('light', function (e) {
  console.log('光照:' + e.values[0]);
}, 200);

同一类型再次 register 会先卸掉旧监听。

unregister(type)

参数: type {string}

返回: {void}

unregisterAll()

返回: {void}

取消本脚本注册的全部传感器。

相关