背景

今天有对设备的运动 跌落的检测
这里简单的了解了系统的传感器接口 有如下几个接口 对大家进行推荐

Android 平台提供多种传感器,可让您监视设备的运动。
传感器的可能架构因传感器类型而异:

- 重力、线性加速度、旋转矢量、有效运动、计步器和步测器传感器可能基于硬件,也可能基于软件。
- 加速度计传感器和陀螺仪传感器始终基于硬件。

大多数 Android 设备都配有加速度计,而现在许多设备都带有陀螺仪。基于软件的传感器的可用性更具可变性,
因为其通常依赖一个或多个硬件传感器来获取其数据。根据设备的不同,这些基于软件的传感器可以从加速度计和磁力计或陀螺仪中获取其数据。
运动传感器在监控设备运动方面(例如倾斜、晃动、旋转或摆动)非常有用。该移动通常是用户直接输入的反映(例如,用户在游戏中驾驶汽车,或在游戏中控制球),
但也可能反映设备所处的物理环境(例如,在开车时与您一起移动)。
在第一种情况下,您正在监控相对于设备参照系或应用参照系的运动;
在第二种情况下,您正在监控相对于世界参照系的运动。运动传感器本身通常不用于监视设备位置,但可以与其他传感器(例如地磁场传感器)一起使用,以确定设备相对于世界参照系的位置
#使用有效运动传感器
这里我们讲一讲有效运动传感器

每次检测到有效运动时,有效运动传感器都会触发事件,然后将其禁用。
有效运动是可能导致用户位置发生变化的运动;例如步行、骑自行车或坐在行驶的车上。
以下代码展示如何获取默认有效运动传感器的实例以及如何注册事件侦听器:

private SensorManager sensorManager;
private Sensor sensor;
private TriggerEventListener triggerEventListener;
...
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION);triggerEventListener = new TriggerEventListener() {@Overridepublic void onTrigger(TriggerEvent event) {// Do work}
};sensorManager.requestTriggerSensor(triggerEventListener, mSensor);

TYPE_SIGNIFICANT_MOTION 没有数据 只是一个触发功能

TriggerEventListener

added in API 18
Here’s an example setup for a TriggerEventListener:

 class TriggerListener extends TriggerEventListener {public void onTrigger(TriggerEvent event) {// Do Work.// As it is a one shot sensor, it will be canceled automatically.// SensorManager.requestTriggerSensor(this, mSigMotion); needs to// be called again, if needed.}}public class SensorActivity extends Activity {private final SensorManager mSensorManager;private final Sensor mSigMotion;private final TriggerEventListener mListener = new TriggerEventListener();public SensorActivity() {mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);mSigMotion = mSensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION);}protected void onResume() {super.onResume();mSensorManager.requestTriggerSensor(mListener, mSigMotion);}protected void onPause() {super.onPause();// Call disable to ensure that the trigger request has been canceled.mSensorManager.cancelTriggerSensor(mListener, mSigMotion);}}

使用计步器传感器

注意:您必须声明 ACTIVITY_RECOGNITION 权限,以便您的应用在运行 Android 10 (API 级别 29) 或更高版本的设备上使用此传感器。
计步器传感器提供自已激活传感器后最后一次重启以来用户迈出的步数。与步测器传感器相比,计步器的延迟时间更长(最多 10 秒),但精确度更高。

private SensorManager sensorManager;
private Sensor sensor;
...
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);

使用步测器传感器

每次用户迈步时,步测器传感器都会触发事件。延迟时间预计将低于 2 秒。
注意:您必须声明 ACTIVITY_RECOGNITION 权限,以便您的应用在运行 Android 10 (API 级别 29) 或更高版本的设备上使用此传感器。

private SensorManager sensorManager;
private Sensor sensor;
...
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);

有效运动传感器 Demo

//对有效运动的封装
public class SignificantMotionSensorService extends android.app.Service {public static final String SIGNIFICANT_MOTION_SENSOR_SERVICE_INTENT = "significant motion sensor service intent";public static final String SIGNIFICANT_MOTION_SENSOR_SERVICE_INTENT_EXTRA_IS_MOVING = "moving";private SensorManager sensorManager;private Sensor sensor;private SignificantMotionSensor significantMotionSensor;@Overridepublic void onCreate() {super.onCreate();significantMotionSensor = new SignificantMotionSensor();sensorManager.requestTriggerSensor(significantMotionSensor, sensor);}@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {return super.onStartCommand(intent, flags, startId);}private class SignificantMotionSensor extends TriggerEventListener {public SignificantMotionSensor() {sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);sensor = sensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION);}@Overridepublic void onTrigger(TriggerEvent event) {//通过广播将时间发送出去Intent i = new Intent(SIGNIFICANT_MOTION_SENSOR_SERVICE_INTENT);i.putExtra(SIGNIFICANT_MOTION_SENSOR_SERVICE_INTENT_EXTRA_IS_MOVING, "true");sendBroadcast(i);sensorManager.requestTriggerSensor(significantMotionSensor, sensor);}}@Overridepublic IBinder onBind(Intent intent) {return null;}
}

Android app如何使用 有效运动传感器相关推荐

  1. android传感器获取运动方向,Android开发者指南-运动传感器Motion Sensor[原创译文]...

    Android 平台支持很多监测设备运动的传感器.其中有两个传感器一定是基于硬件的(加速度计和陀螺仪),有三个可能基于硬件或软件(重力计.线性加速计和旋转向量传感器). 比如,某些设备的软传感器利用加 ...

  2. Android系统运动传感器

    Android平台提供了多种感应器,让你监控设备的运动. 传感器的架构因传感器类型而异: 重力,线性加速度,旋转矢量,重要运动,计步器和步检测传感器是基于硬件或基于软件的. 加速计和陀螺仪传感器是始终 ...

  3. Android大作业—乐道步走(HappyRunning)一款计步器和跑步运动轨迹记录Android APP

    Android大作业--乐道步走(HappyRunning) (一款计步器和跑步运动轨迹记录Android APP) (作业要求体现四大组件Activity.Service.BroadCast Rec ...

  4. 深入浅出Android App耗电量统计

    原文出处:http://www.cnblogs.com/hyddd/p/4402621.html 在Android统计App耗电量比较麻烦,直至Android 4.4,它仍没公开"电量统计& ...

  5. Android App 耗电量分析-1

    分为新老两个版本的SDK-TOOL,新版的放在另外一篇博客 Android App 电量分析https://blog.csdn.net/kan137g/article/details/84886277 ...

  6. 2020年TI杯大学生电子设计大赛 无线运动传感器节点 备赛、参赛实录(历时一个月)

    转载请标明转载自:https://blog.csdn.net/weixin_44578655/article/details/109020022 9.5 清单已经出了一段时间了.买的少部分元器件也到了 ...

  7. Android APP必备高级功能,消息推送之MQTT

    本文已授权微信公众号<鸿洋>原创首发,转载请务必注明出处. 1. Android端实现消息推送的几种方式 轮询:客户端定时向服务器请求数据.伪推送.缺点:费电,费流量. 拦截短信消息.服务 ...

  8. 【Android App】物联网中指南针、计步器、感光器、陀螺仪的讲解及实战演示(附源码 超详细必看)

    需要源码请点赞关注收藏后评论区留言~~~ 一.指南针-磁场传感器 顾名思义,指南针只要找到朝南的方向就好了. 可是在App中并非使用一个方向传感器这么简单,事实上单独的方向传感器已经弃用,取而代之的是 ...

  9. 可测含多进程的app-- python调用adb命令获取Android App应用的性能数据:CPU、GPU、内存、电池、耗电量(含python源码)

    可测含多进程的app–Python–通过adb命令获取Android App应用的性能数据:CPU.GPU.内存.电池.耗电量,并与Perfdog取值对比结果 1.原理 python脚本通过os.po ...

最新文章

  1. LeetCode 965 Univalued Binary Tree--判断二叉树的所有节点的值是否相同--python,java解法
  2. linux下如何修改根口令
  3. Oracle 11g Release 2 (11.2) for Microsoft Windows (32-Bit)安装与卸除
  4. 美国国防部选择VMware View用于全球作战系统
  5. Oracle Recyclebin
  6. desktop docker 无法卸载_docker,生信人的福音!
  7. linux心跳包检测代码_OpenSSL心跳包越界读敏感信息泄漏漏洞
  8. 探秘Win7计算器,这货不只是计算器
  9. hibernate注释映射_Hibernate一对多映射示例注释
  10. 马蜂窝张矗:我对技术团队绩效考核管理的几点思考
  11. 【大一期末项目】qqclienkey利用:基于qqclientkey的纯c++项目实践
  12. 【R语言 数据挖掘】R语言如何做关联规则?
  13. 拼多多商家和快递公司谈合作的技巧
  14. 【虹科ELPRO - EMS系统】实现苏州某医药仓库温湿度自动监测 - 100% GxP合规(下)
  15. html的em标签引发的一系列思考
  16. 随机生成地址工具使用教程
  17. gadget驱动框架(四)
  18. IDEA 2019.3.4 使用教程
  19. php计算QQ音乐guid,php实现网易云音乐 QQ音乐 酷狗音乐直链获取 搜索音乐及歌词...
  20. mybatis处理字段和属性的映射关系

热门文章

  1. 采茶叶的小姑娘, 背着的“箩筐”装的全是套路
  2. (转载)CString,string,char*的综合比较
  3. python实现一个整数加法计算器_如何使用python编程写一个加法计算器-Python教程...
  4. win11系统连接上WiFi却无法上网怎么解决?
  5. vray日间渲染蓝海创意云分享
  6. 教你如何搭建专业的手术直播平台
  7. 关于戴尔电脑频繁屏幕卡死问题的自我研究
  8. 计算机网络英文缩写词大全——搭配英文全称更好记(辽宁大学任秀丽)
  9. Babylonjs 最全demo集合 (内附源码)
  10. 使用智能指针错误导致内存泄漏_C++智能指针使用的那些事