更新记录
1.0.0(2026-01-07)
- ✨ 初始版本发布
- ✨ 支持 Android 平台传感器数据流
- 支持 10 种传感器类型(加速度、陀螺仪、磁力计、重力、线性加速度、旋转向量、接近、光线、压力、环境温度)
- 支持自定义采样频率(NORMAL、UI、GAME、FASTEST)
- 支持多传感器同时监听
- ✨ 支持 iOS 平台传感器数据流
- 使用 CoreMotion 框架
- 支持 6 种传感器类型(加速度、陀螺仪、磁力计、重力、线性加速度、旋转向量)
- 通过设备运动数据获取重力、线性加速度和旋转向量
- ✨ 支持 HarmonyOS 平台传感器数据流
- 使用系统传感器 API
- 支持 10 种传感器类型(与 Android 一致)
- ✨ UTS 插件架构
- 统一使用 UTS 语言开发
- 支持 uni-app 和 uni-app x
- 支持直接 import 使用
- 支持摇树优化
- ✨ 完整的 API 接口
startSensor()- 启动传感器监听stopSensor()- 停止传感器监听getAvailableSensors()- 获取可用传感器列表stopAllSensors()- 停止所有传感器监听
平台兼容性
uni-app(3.6.15)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | × | × | √ | √ | 5.0 | 12 | 3.0 |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × |
uni-app x(3.6.15)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | 5.0 | 12 | 3.0 | × |
Sensor Data Stream - 传感器原始数据流插件
简介
这是一个UTS插件,用于实时获取Android、iOS和HarmonyOS设备上各种传感器的原始数据流。支持高频数据采集、多传感器同时监听、数据过滤等功能。
UTS插件优势:
- ✅ 统一使用UTS语言开发,无需学习Java/Kotlin
- ✅ 支持uni-app和uni-app x
- ✅ 可以直接import使用,支持摇树优化
- ✅ 统一在HBuilderX中开发调试
功能特性
- ✅ 支持多种传感器类型(加速度、陀螺仪、磁力计、重力、线性加速度、旋转向量等)
- ✅ 实时高频数据流(可自定义采样频率)
- ✅ 多传感器同时监听
- ✅ 数据过滤和回调
- ✅ 低延迟、高性能
- ✅ 支持传感器数据融合
支持的传感器类型
| 传感器类型 | 说明 | 数据维度 |
|---|---|---|
| TYPE_ACCELEROMETER | 加速度传感器 | x, y, z (m/s²) |
| TYPE_GYROSCOPE | 陀螺仪传感器 | x, y, z (rad/s) |
| TYPE_MAGNETIC_FIELD | 磁力计传感器 | x, y, z (μT) |
| TYPE_GRAVITY | 重力传感器 | x, y, z (m/s²) |
| TYPE_LINEAR_ACCELERATION | 线性加速度传感器 | x, y, z (m/s²) |
| TYPE_ROTATION_VECTOR | 旋转向量传感器 | x, y, z, w |
| TYPE_PROXIMITY | 接近传感器 | distance (cm) |
| TYPE_LIGHT | 光线传感器 | light (lux) |
| TYPE_PRESSURE | 压力传感器 | pressure (hPa) |
| TYPE_AMBIENT_TEMPERATURE | 环境温度传感器 | temperature (°C) |
安装使用
方式一:从插件市场购买安装(推荐)
- 在 uni-app 插件市场 搜索 "传感器原始数据流"
- 点击插件进入详情页
- 选择授权版本:
- 普通授权版:价格较低,UTS源码不可见,适合直接使用
- 源码授权版:价格较高,提供完整源码,适合需要审查源码或二次开发
- 购买后下载,导入到项目即可使用
方式二:申请试用
- 在插件市场点击"申请试用"
- 试用期间可以打包自定义基座进行测试
- 试用期插件内容不可见,不能用于正式发布
- 试用没有有效期限制
配置说明
UTS插件无需在manifest.json中配置,导入后即可直接使用。
授权说明
- 普通授权版:UTS源码不可见,提供基于项目的使用权
- 源码授权版:提供完整源码,支持源码审查和二次开发
- 购买时需要绑定项目appid及包名
基本使用
导入UTS接口(符合官方规范)
// 从插件根目录直接导入(Vue2、Vue3、nvue使用方式完全一致,与官方插件使用方式一致)
// 注意:本插件仅支持App平台,需要添加条件编译
// #ifdef APP-PLUS
import { startSensor, stopSensor, getAvailableSensors, stopAllSensors } from '@/uni_modules/sy-sensor-stream'
// #endif
// 监听加速度传感器
startSensor({
type: 'ACCELEROMETER',
delay: 'FASTEST', // 采样频率:NORMAL, UI, GAME, FASTEST
onData: (data) => {
console.log('加速度数据:', data);
// data: { x: 0.1, y: 9.8, z: 0.2, timestamp: 1234567890, accuracy: 3 }
}
}, (result) => {
if (result.success) {
console.log('传感器启动成功');
} else {
console.error('传感器启动失败:', result.error);
}
});
// 停止传感器
stopSensor({
type: 'ACCELEROMETER'
}, (result) => {
console.log('传感器已停止');
});
说明:
- 本插件仅支持App平台(Android、iOS、HarmonyOS),使用前必须添加条件编译
#ifdef APP-PLUS- 从插件根目录直接导入,符合UTS插件官方规范,与官方插件使用方式一致
多传感器同时监听
// #ifdef APP-PLUS
import { startSensor, stopSensor } from '@/uni_modules/sy-sensor-stream'
// #endif
// 同时监听加速度和陀螺仪
startSensor({
type: 'ACCELEROMETER',
delay: 'GAME',
onData: (data) => {
console.log('加速度:', data);
}
});
startSensor({
type: 'GYROSCOPE',
delay: 'GAME',
onData: (data) => {
console.log('陀螺仪:', data);
}
});
获取传感器列表
// #ifdef APP-PLUS
import { getAvailableSensors } from '@/uni_modules/sy-sensor-stream'
// #endif
getAvailableSensors((result) => {
if (result.success) {
console.log('可用传感器:', result.sensors);
// result.sensors: ['ACCELEROMETER', 'GYROSCOPE', 'MAGNETIC_FIELD', ...]
}
});
API 文档
startSensor(options, callback)
启动传感器监听
参数:
options.type(String): 传感器类型,如 'ACCELEROMETER', 'GYROSCOPE' 等options.delay(String): 采样频率,可选值:'NORMAL', 'UI', 'GAME', 'FASTEST'options.onData(Function): 数据回调函数
回调:
callback(result): 启动结果回调result.success(Boolean): 是否成功result.error(String): 错误信息(失败时)
stopSensor(options, callback)
停止传感器监听
参数:
options.type(String): 传感器类型
回调:
callback(result): 停止结果回调
getAvailableSensors(callback)
获取设备支持的传感器列表
回调:
callback(result): 结果回调result.success(Boolean): 是否成功result.sensors(Array): 可用传感器类型数组
stopAllSensors(callback)
停止所有正在运行的传感器
回调:
callback(result): 结果回调
注意事项
- 传感器数据采集会消耗一定电量,建议在不需要时及时停止
- 高频采样(FASTEST)会消耗更多资源,建议根据实际需求选择
- 部分传感器在某些设备上可能不可用,使用前建议先调用
getAvailableSensors检查 - Android平台:传感器权限为系统内置权限,无需额外申请
- iOS平台:插件已自动配置
info.plist权限说明,无需手动添加。如需自定义,可在项目的manifest.json中配置iOS权限。 - 本插件仅支持 App 平台(Android、iOS、HarmonyOS),H5 和小程序平台不支持
- HarmonyOS平台:传感器权限为系统内置权限,无需额外申请
兼容性
平台支持
- Android: Android 5.0+ (API Level 21+)
- iOS: iOS 9.0+
- HarmonyOS: HarmonyOS 3.0+ / HarmonyOS NEXT
框架支持
- ✅ Vue 2: 完全支持
- ✅ Vue 3: 完全支持
- ✅ nvue: 完全支持(App端原生渲染页面)
- ✅ uni-app: 3.1.0+
- ✅ uni-app x: 3.1.0+
- ✅ HBuilderX: 3.6.0+(UTS插件需要)
使用说明
本插件使用UTS开发,编译为原生代码,在Vue2、Vue3和nvue中均可正常使用,使用方式完全一致。
平台支持说明
iOS平台
iOS平台使用CoreMotion框架,支持以下传感器:
- ✅ 加速度传感器 (ACCELEROMETER)
- ✅ 陀螺仪传感器 (GYROSCOPE)
- ✅ 磁力计传感器 (MAGNETIC_FIELD)
- ✅ 重力传感器 (GRAVITY) - 通过设备运动数据
- ✅ 线性加速度传感器 (LINEAR_ACCELERATION) - 通过设备运动数据
- ✅ 旋转向量传感器 (ROTATION_VECTOR) - 通过设备运动数据
- ❌ 接近传感器 (PROXIMITY) - iOS不支持
- ❌ 光线传感器 (LIGHT) - iOS不支持
- ❌ 压力传感器 (PRESSURE) - iOS不支持
- ❌ 环境温度传感器 (AMBIENT_TEMPERATURE) - iOS不支持
注意:iOS平台权限说明已自动配置在插件的info.plist中,无需手动添加。
HarmonyOS平台
HarmonyOS平台使用系统传感器API,支持以下传感器:
- ✅ 加速度传感器 (ACCELEROMETER)
- ✅ 陀螺仪传感器 (GYROSCOPE)
- ✅ 磁力计传感器 (MAGNETIC_FIELD)
- ✅ 重力传感器 (GRAVITY)
- ✅ 线性加速度传感器 (LINEAR_ACCELERATION)
- ✅ 旋转向量传感器 (ROTATION_VECTOR)
- ✅ 接近传感器 (PROXIMITY)
- ✅ 光线传感器 (LIGHT)
- ✅ 压力传感器 (PRESSURE)
- ✅ 环境温度传感器 (AMBIENT_TEMPERATURE)
注意:HarmonyOS平台的传感器支持情况取决于具体设备硬件,部分传感器可能在某些设备上不可用。传感器权限为系统内置权限,无需额外申请。
许可证
商业授权(付费插件)

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 1548
赞赏 16
下载 13090692
赞赏 1842
赞赏
京公网安备:11010802035340号