更新记录

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)

安装使用

方式一:从插件市场购买安装(推荐)

  1. uni-app 插件市场 搜索 "传感器原始数据流"
  2. 点击插件进入详情页
  3. 选择授权版本:
    • 普通授权版:价格较低,UTS源码不可见,适合直接使用
    • 源码授权版:价格较高,提供完整源码,适合需要审查源码或二次开发
  4. 购买后下载,导入到项目即可使用

方式二:申请试用

  1. 在插件市场点击"申请试用"
  2. 试用期间可以打包自定义基座进行测试
  3. 试用期插件内容不可见,不能用于正式发布
  4. 试用没有有效期限制

配置说明

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): 结果回调

注意事项

  1. 传感器数据采集会消耗一定电量,建议在不需要时及时停止
  2. 高频采样(FASTEST)会消耗更多资源,建议根据实际需求选择
  3. 部分传感器在某些设备上可能不可用,使用前建议先调用 getAvailableSensors 检查
  4. Android平台:传感器权限为系统内置权限,无需额外申请
  5. iOS平台:插件已自动配置info.plist权限说明,无需手动添加。如需自定义,可在项目的manifest.json中配置iOS权限。
  6. 本插件仅支持 App 平台(Android、iOS、HarmonyOS),H5 和小程序平台不支持
  7. 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平台的传感器支持情况取决于具体设备硬件,部分传感器可能在某些设备上不可用。传感器权限为系统内置权限,无需额外申请。

许可证

商业授权(付费插件)

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android:传感器权限为系统内置权限,无需额外申请。iOS:插件已自动配置info.plist权限说明,无需手动添加。HarmonyOS:传感器权限为系统内置权限,无需额外申请。

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。