Flutter 获取手机传感器数据

前言

在Flutter中可以使用sensors_plus插件来访问加速度计、陀螺仪、磁力计以及气压传感器

sensors_plue的平台支持

平台

是否支持

Android
iOS
MacOS
Web
Linux
Windows

sensors_plue的要求

  • Flutter >=3.19.0
  • Dart >=3.3.0 <4.0.0
  • iOS >=12.0
  • MacOS >=10.14
  • Android compileSDK 34
  • Java 17
  • Android Gradle Plugin >=8.3.0
  • Gradle wrapper >=8.4

sensors_plue的常用方法

常用方法

描述

监听返回类型

accelerometerEventStream({samplingPeriod}).listen()

监听设备的加速度(包括重力影响)

AccelerometerEvent

userAccelerometerEventStream({samplingPeriod}).listen()

监听设备的加速度(不包括重力影响)

UserAccelerometerEvent

gyroscopeEventStream({samplingPeriod}).listen()

监听设备的陀螺仪数据

GyroscopeEvent

magnetometerEventStream({samplingPeriod}).listen()

监听设备的环境磁场

MagnetometerEvent

barometerEventStream({samplingPeriod}).listen()

监听设备周围的大气压力BarometerEvent
AccelerometerEvent

加速计的离散读数。加速计测量设备的速度。请注意,这些读数包括重力的影响。简单地说,您可以使用加速计读数来判断设备是否在特定方向上移动。

属性

描述

类型

timestamp

事件的时间戳,单位为微秒

DateTime

x沿x轴的加速力(包括重力),单位为m/s^2double
y沿y轴的加速力(包括重力),单位为m/s^2double
z沿z轴的加速力(包括重力),单位为m/s^2double
UserAccelerometerEvent

与[AccelerometerEvent]一样,这是加速计的离散读数,用于测量设备的速度。然而,与[AccelerometerEvent]不同,该事件不包括重力的影响。

属性

描述

类型

x沿x轴的加速力(不包括重力),单位为m/s^2double
y沿y轴的加速力(不包括重力),单位为m/s^2double
z沿z轴的加速力(不包括重力),单位为m/s^2double

timestamp

事件的时间戳,单位为微秒

DateTime

GyroscopeEvent

陀螺仪的离散读数。陀螺仪测量设备在3D空间中的速率或旋转。

属性

描述

类型

x绕x轴的旋转速率,单位为rad/sdouble
y绕y轴的旋转速率,单位为rad/sdouble
z绕z轴的旋转速率,单位为rad/sdouble

timestamp

事件的时间戳,单位为微秒

DateTime

MagnetometerEvent

磁力计测量传感器周围的环境磁场,返回每个三维轴的微特斯拉(μT)值。

考虑到这些样本可能受到地球磁场的影响以及设备本身的金属或附近磁铁等局部因素的影响,尽管大多数设备都会补偿这些因素。指南针是磁力计数据通用工具的一个例子。

属性

描述

类型

x传感器x轴上的环境磁场,单位为μTdouble
y传感器y轴上的环境磁场,单位为μTdouble
z传感器z轴上的环境磁场,单位为μTdouble

timestamp

事件的时间戳,单位为微秒

DateTime

BarometerEvent

气压计测量传感器周围的大气压力,返回百帕(hPa)的值。
考虑到这些样本可能受到海拔和天气条件的影响,可用于预测短期天气变化或确定海拔高度。请注意,由于操作设备引起的压力变化,防水手机或类似的密封设备在握持或使用时可能会出现压力波动。高度计是气压计数据通用工具的一个例子。

属性

描述

类型

pressure

传感器周围的大气压力,单位为百帕(hPa)。double
timestamp事件的时间戳,单位为微秒DateTime

用法

如果要获取气压计数据,iOS需要访问运动数据。因此必须在应用文件中包含一个名为的键Info.plist。此键提供一条消息,告知用户应用为何请求访问设备的运动数据

info.plist 条目示例:

<key>NSMotionUsageDescription</key>
<string>This app requires access to the barometer to provide altitude information.</string>

示例内容 

import 'package:sensors_plus/sensors_plus.dart';
// 监听设备的加速度(包括重力影响)
accelerometerEventStream().listen((AccelerometerEvent event) {print(event);},onError: (error) {},cancelOnError: true,
); // [AccelerometerEvent (x: 0.0, y: 9.8, z: 0.0)]// 监听设备的加速度(不包括重力影响)
userAccelerometerEventStream().listen((UserAccelerometerEvent event) {print(event);},onError: (error) {},cancelOnError: true,
); // [UserAccelerometerEvent (x: 0.0, y: 0.0, z: 0.0)]// 监听设备的陀螺仪数据
gyroscopeEventStream().listen((GyroscopeEvent event) {print(event);},onError: (error) {},cancelOnError: true,
);// [GyroscopeEvent (x: 0.0, y: 0.0, z: 0.0)]//监听设备的环境磁场
magnetometerEventStream().listen((MagnetometerEvent event) {print(event);},onError: (error) {},cancelOnError: true,
);// [MagnetometerEvent (x: -23.6, y: 6.2, z: -34.9)]//监听设备周围的大气压力
barometerEventStream().listen((BarometerEvent event) {print(event);},onError: (error) {},cancelOnError: true,
);// [BarometerEvent (pressure: 1000.0)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/447358.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM 内存区域 堆

堆是JVM中相当核心的内容&#xff0c;因为堆是JVM中管理的最大一块内存区域&#xff0c;大部分的GC也发生在堆区&#xff0c;那接下来就让深入地探究一下JVM中的堆结构。 需要明确&#xff0c;一个JVM实例只存在一个堆内存&#xff0c;堆区在JVM启动的时候就被创建&#xff0c…

成都睿明智科技有限公司共创抖音电商新篇章

在当今这个数字化浪潮汹涌的时代&#xff0c;抖音电商以其独特的魅力迅速崛起&#xff0c;成为众多商家竞相追逐的新蓝海。在这片充满机遇与挑战的领域中&#xff0c;成都睿明智科技有限公司凭借其专业的服务、创新的策略和敏锐的市场洞察力&#xff0c;成为了众多商家信赖的合…

【部署篇】Redis-01介绍‌

一、Redis介绍‌ 1、什么是Redis&#xff1f; ‌Redis&#xff0c;英文全称是Remote Dictionary Server&#xff08;远程字典服务&#xff09;&#xff0c;Redis是一个开源的、使用‌ANSI C语言编写的‌Key-Value存储系统&#xff0c;支持网络、可基于内存亦可持久化。‌ 它提…

uni-app关闭底部系统导航栏的控制按钮BUG

描述 plus.navigator.hideSystemNavigation(); 在uni-app中使用 plus.navigator.hideSystemNavigation(); 关闭导航栏时会出bug会留下一个黑框。这个bug基于手机&#xff1b; 平板的性能来决定出bug频率原因是&#xff1a;过早启用霸屏导致的&#xff08;过早使用plus.navig…

JVM 调优篇10 使用arthas排优

一 Arthas的作用 1.1 作用 1. 这个类从哪个 jar 包加载的&#xff1f;为什么会报各种类相关的 Exception&#xff1f; 2.是否有一个全局视角来查看系统的运行状况&#xff1f; 3. 有什么办法可以监控到JVM的实时运行状态&#xff1f; 4. 怎么快速定位应用的热点&#x…

Cesium 实战 - 自定义纹理材质 - 立体墙(旋转材质)

Cesium 实战 - 自定义纹理材质 - 立体墙(旋转材质) 核心代码完整代码在线示例Cesium 给实体对象(Entity)提供了很多实用的样式,基本满足普通项目需求; 但是作为 WebGL 引擎,肯定不够丰富,尤其是动态效果样式。 对于实体对象(Entity),可以通过自定义材质,实现各种…

CST软件超表面--- 偏振片- 线圆极化转换,Floquet端口,S参数算轴比AR

这期我们看一个超表面极化分析&#xff0c;用到Floquet端口模数&#xff0c;S参数读出极化和轴比&#xff0c;还有平面波散射截面等技巧。 使用模板&#xff0c;频率0-25GHz&#xff0c;电场监视器8.06GHz: 画一片PEC&#xff1a; 画第二片PEC&#xff0c;insert到第一片里面&…

python爬虫,爬取网页壁纸图片

python爬虫实战&#xff0c;爬取网页壁纸图片 使用python爬取壁纸图片&#xff0c;保存到本地。 爬取彼岸图网&#xff0c;网站地址https://pic.netbian.com/ 本人小白&#xff0c;记录一下学习过程。 开始前的准备 安装python环境&#xff0c;略。 python编辑器pycharm2…

自动化检查网页的TDK,python+selenium自动化测试web的网页源代码中的title,Description,Keywords

首先&#xff0c;TDK是什么&#xff1f;对于新手小白来说&#xff0c;可能是懵逼的&#xff0c;所以这里给出一个官方的解说‌网页的TDK是指标题&#xff08;Title&#xff09;、描述&#xff08;Description&#xff09;和关键词&#xff08;Keywords&#xff09;的集合‌。这…

大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

Blazor Web APP学习记录

目录 1 呈现模式1.1 静态SSR1.2 服务器端交互SSR1.3 客户端交互CSR1.4 自动交互式1.5 注意 2 Blazor Web APP项目3 会话状态3.1 Blazor Server会话状态保存3.2 Blazor WebAssembly 会话状态保存 1 呈现模式 参见&#xff1a;https://learn.microsoft.com/zh-cn/aspnet/core/bl…

Golang | Leetcode Golang题解之第474题一和零

题目&#xff1a; 题解&#xff1a; func findMaxForm(strs []string, m, n int) int {dp : make([][]int, m1)for i : range dp {dp[i] make([]int, n1)}for _, s : range strs {zeros : strings.Count(s, "0")ones : len(s) - zerosfor j : m; j > zeros; j--…

点评项目-7-缓存击穿的两种解决方案、缓存工具类的编写

缓存击穿 在高并发访问的访问中&#xff0c;对于复杂业务 key 的缓存&#xff0c;可能会在缓存生效前打入大量的请求&#xff0c;导致大量的请求打到数据库 解决方案&#xff1a; 1.互斥锁&#xff0c;给缓存的构建过程加上一个锁&#xff0c;当拿到锁时才进行下一步&#x…

【Boss直聘-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …

线性自抗扰控制(LADRC)系统算法框图

非线性ADRC(NLADRC)详细算法框图和源代码请参考专栏系列文章,常用链接如下: 1、NLADRC自抗扰控制 NLADRC自抗扰控制从Simulink仿真到PLC控制实现_自抗扰控制器 simulink仿真-CSDN博客文章浏览阅读1.6k次,点赞2次,收藏7次。本文介绍了如何将ADRC自抗扰控制算法从Simulink…

牛只行为及种类识别数据集18g牛只数据,适用于多种图像识别,目标检测,区域入侵检测等算法作为数据集。数据集中包括牛只行走,站立,进食,饮水等不同类型的数据

18g牛只数据&#xff0c;适用于多种图像识别&#xff0c;目标检测&#xff0c;区域入侵检测等算法作为数据集。 数据集中包括牛只行走&#xff0c;站立&#xff0c;进食&#xff0c;饮水等不同类型的数据&#xff0c;可以用于行为检测 数据集中包含多种不同种类的牛只&#xff…

【MATLAB源码-第249期】基于matlab的信道量化反馈的预编码仿真,采用均匀量化方式和LDL分解的预编码。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 基于信道量化反馈的预编码技术是当今无线通信系统中的一个核心研究方向。随着多输入多输出&#xff08;MIMO&#xff09;系统的广泛应用&#xff0c;如何有效地利用信道状态信息&#xff08;CSI&#xff09;进行预编码成为提…

用自己的数据集复现YOLOv5

yolov5已经出了很多版本了&#xff0c;这里我以目前最新的版本为例&#xff0c;先在官网下载源码&#xff1a;GitHub - ultralytics/yolov5: YOLOv5 &#x1f680; in PyTorch > ONNX > CoreML > TFLite 然后下载预训练模型&#xff0c;需要哪个就点击哪个模型就行&am…

统一时序预测模型,上下文长度首次扩展至千级别!!!

统一时序预测模型&#xff0c;上下文长度首次扩展至千级别&#xff0c;适用各类数据集&#xff01; 今天给大家介绍一篇清华大学的时间序列预测最新工作&#xff0c;提出了统一的Transformer时序预测模型&#xff0c;能同时处理单变量和多变量时序预测&#xff0c;并将时序预测…

PPT分享:埃森哲-如何利用大数据进行数据挖掘与分析

PPT下载链接见文末~ 在当今信息爆炸的时代&#xff0c;大数据已成为企业决策、科学研究及社会发展的重要驱动力。数据挖掘与分析作为大数据应用的核心环节&#xff0c;能够帮助我们从海量数据中提取有价值的信息和知识。 本文将引导您了解如何利用大数据进行数据挖掘与分析&a…