传感器 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 |
|---|---|---|---|
accelerometer | acc | 加速度计(含重力) | [0]=x,[1]=y,[2]=z,m/s² |
gyroscope | gyro | 陀螺仪(角速度) | [0]=x,[1]=y,[2]=z,rad/s |
light | light_sensor | 环境光 | [0] 光照,lx |
proximity | — | 距离/接近(听筒遮挡) | [0] cm;部分机型仅远/近 |
magnetic_field | magnetic / 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 |
humidity | relative_humidity | 相对湿度 | [0] % |
temperature | ambient_temperature | 环境温度 | [0] ℃ |
也可用 type_<数字> 按 Android 传感器类型常量注册。
javascript
console.log(Sensors.catalog());list()
返回: {string[]} 本机可用传感器别名
javascript
console.log(Sensors.list());catalog()
返回: {object[]} 每项含 type、aliases、description、values
不依赖本机是否具备该传感器,用于查阅说明。
has(type)
参数: type {string} 类型别名
返回: {boolean}
register(type, callback, delayMs?)
参数:
type {string}类型别名callback {function}回调,参数为事件对象delayMs {number}可选,采样间隔毫秒;省略或<= 0用默认 UI 延迟
返回: {boolean} 是否注册成功
回调对象字段:
| 字段 | 说明 |
|---|---|
values | number[] 读数(含义见类型目录) |
timestamp | 时间戳 |
accuracy | 精度 |
type | 类型别名 |
javascript
Sensors.register('light', function (e) {
console.log('光照:' + e.values[0]);
}, 200);同一类型再次 register 会先卸掉旧监听。
unregister(type)
参数: type {string}
返回: {void}
unregisterAll()
返回: {void}
取消本脚本注册的全部传感器。
