上一篇入口

  • 下载源-53.8 MB

这是有关使用Android和Tensorflow Lite构建实时危险检测器的系列文章中的第五篇。在这一部分中,我们将向应用程序添加崩溃检测,并使应用程序能够向紧急联系人发送通知。

利用大多数Android设备的功能,我们可以向设备添加崩溃检测。在大多数Android设备中,该设备具有加速度计和GPS。如果我们认为发生了崩溃,可以一起使用这些消息发送消息,并发送带有位置的紧急消息。

为了检测崩溃,我创建了一个名为CrashDetector的新类。该类将监测来自加速度计的读数。当其接收到高于某个水平的读数时,则认为车辆受到了冲击。我在这里选择的用于指示影响的值是基于对车祸的阅读的最佳估计。

var coolDownExpiry:Long = 0
val COOL_DOWN_TIME = 10000fun resetCooldown() {coolDownExpiry = Date().time + COOL_DOWN_TIME
}
fun hasCooldownExpired():Boolean {val now = Date().timereturn now > coolDownExpiry
}fun alert(direction: Int) {// using the when statement to filter out invalid// values should they be passed to this functionif(hasCooldownExpired() && currentSpeedMPS>MIN_ALERT_MPS) {when (direction) {ALARM_CENTER, ALARM_RIGHT, ALARM_LEFT -> {soundPlayer = MediaPlayer.create(context, direction)soundPlayer!!.start()}}}resetCooldown()
}

还有其他一些情况可能会导致加速度计的读数突然升高。设备可能掉落,用户开车驶过坑洼或用户发生了碰撞而不想发送警报的情况。为了降低发送意外紧急消息的机会,在发送消息之前会有一定的延迟。在此延迟期间,设备会显示提示,允许用户取消消息或将其发送出去。如果对话框到期后仍未选择任何内容,它将向用户已选择其紧急联系人的电话号码发送一条消息。如果驱动程序有一个最后已知的位置,它将作为链接发送到Google Maps。

fun sendEmergencyMessage() {var  msg = crashMessageif(this.location != null) {msg = msg + " https://www.google.com/maps/@${location!!.latitude},${location!!.longitude},15z"}val smsManager = SmsManager.getDefault() as SmsManagersmsManager.sendTextMessage(crashPhoneNumber, null,msg , null, null)
}

既然已经构建了所有主要功能,我们就可以准备好最后一块,并让应用程序使用实时视频流而不是静态图像。在本系列的下一部分中,我们将为应用程序处理实时数据。

https://www.codeproject.com/Articles/5291392/Crash-Detection-Using-the-Accelerometer

使用加速度计进行崩溃检测相关推荐

  1. ubuntu关闭自动更新、打开 ubuntu 的 apport 崩溃检测报告功能

    菜单栏点 系统 --->首选项 --->启动应用程序 --->更新提示 前面的钩打掉 关闭即可 =========== 打开 ubuntu 的 apport 崩溃检测报告功能 在ub ...

  2. [02] BLEMotion-Kit 基于QMI8658传感器使用加速度计进行倾斜检测

    文章目录 1. 先修知识 2. 原理(单轴为例) 2.1 单轴倾斜 2.2 双轴倾斜 2.3 三轴倾斜 3. 视频演示 1. 先修知识 2. 原理(单轴为例) 首先我们要知道的是:当目标轴(本例中为X ...

  3. 在Android上通过AI危险检测向驾驶员发出警报

    目录 防止连续警报 下载源-53.8 MB 这是有关使用Android构建实时危害检测器的系列文章中的第四篇.在上一篇文章中,我们研究了如何在屏幕上突出显示对象.我们还注意到,并非所有检测到的物体都是 ...

  4. 华为手表开发:WATCH 3 Pro(15)传感器订阅加速度计

    华为手表开发:WATCH 3 Pro(15)传感器订阅加速度计 初 环境与设备 加速度传感器介绍与说明 鸿蒙开发 文件夹: 文件 重点 新增展示的文本标记 index.hml index.css in ...

  5. Android客户端异常检测

    一.崩溃检测原理 通过thread.setDefaultUncaughtExceptionHandler(),设置默认异常处理Handler,对未被捕获异常进行处理. 虚拟机会将没有处理的异常交给默认 ...

  6. 四轴无人机那些事 番外篇 2 加速度计

    加速度计原理:    加速度传感器实际上是用MEMS技术检测惯性力造成的微小形变,把加速度传感器水平静止放在桌子上,它的Z轴输出的是1g的加速度.因为它Z轴方向被重力向下拉出了一个形变.可惜的是,加速 ...

  7. Android内存检测工具

    什么是内存泄漏? 在运行的程序中,如果一个无法访问的对象仍然占用着内存空间,即为此对象造成了内存泄漏 垃圾回收(GC)机制: 当垃圾回收运行时,虚拟机首先会识别GC Root.GC Root 是一个可 ...

  8. iPhone闯大祸!车祸检测大量误报挤占救援资源

    Alex 发自 凹非寺 量子位 | 公众号 QbitAI 美国某紧急救助中心,一个周末收到了71通报警电话. 然鹅,这里面居然没有一个是真的-- 原来,该救助中心附近有座雪场,现在正值滑雪旺季. 一些 ...

  9. docker安装kafka消息队列

    1. 启动zookeeper容器(Zookeeper用于崩溃检测,实现Topic发现,和维护Topic的生产和消费状态) docker run -d --name zookeeper -p 2181: ...

最新文章

  1. Windows LTSC、LTSB、Server 安装 Windows Store 应用商店
  2. adb server version (41) doesn‘t match this client (39); killing
  3. 【Paper】2012_Design of high performance multimedia control system for UAV/UGV based on SoC/FPGA Core
  4. 文计笔记2: 计算机硬件知识
  5. mysql跨库查询 索引_MySQL中跨库查询怎么搞?
  6. 薪资超大厂,校招天花板!Google大神云集,美团等参投,无人驾驶TOP独角兽!轻舟智航100+offer等你来!...
  7. Windows 系统下Git安装图解
  8. VS Code 设置好看的字体:Operator Mono
  9. element el-tree 懒加载 默认展开第二层
  10. 使用yum安装CDH Hadoop集群
  11. 2.5.1.1、解析配置
  12. git使用.gitignore 忽略文件和忽略已经提交过的文件
  13. linux 会话 进程组 守护进程
  14. 2.matplotlib画散点图
  15. Layui表单验证lay-verify属性:自定义校验
  16. “打印机安装失败,请检查打印服务”问题解决方案
  17. 基于GAN的动漫头像生成
  18. PIXI 精灵表和精灵动画
  19. 蓝桥杯 第39级台阶
  20. ASP计算周开始和一年有多少周及某年第一周开始日期

热门文章

  1. 获取linux命令硬盘信息,Linux下如何获取磁盘信息
  2. ipad远程连接虚拟机linux,如何从ipad pro上通过SSH远程Linux
  3. python直方图教程_python如何画直方图
  4. java访问对象的属性_java访问对象的属性和行为详细介绍
  5. rails mysql查询_rails 对数据库的一些操作:新增,查询等
  6. mysql binlog使用_mysql binlog 基本使用
  7. 炫酷科技感超前的电子产品发布广告海报psd分层模板,带给你炫酷的未来感
  8. php7 测试数据库_达梦数据库PHP连接测试
  9. FD.io VPP:vlib buffer pool(vlib_buffer) 内存初始化
  10. 模拟退火法-TSP问题