《Android传感器高级编程》

基本信息

原书名:Professional Android Sensor Programming

原出版社: Wrox

作者: (美)米内特(Greg Milette)    (美)斯川德(Adam Stroud)

译者: 裴佳迪

丛书名: 移动开发经典丛书

出版社:清华大学出版社

ISBN:9787302340775

上架时间:2013-12-3

出版日期:2013 年11月

开本:16开

页码:481

版次:1-1

所属分类:计算机 > 软件与程序设计 > 移动开发 > Android

更多关于》》》 《Android传感器高级编程》

 

内容简介

书籍

计算机书籍

  如果想要创建真正了不起的android 应用,就必须知道如何利用android的所有功能。《android传感器高级编程》会利用你所需的知识和代码来武装你,帮助你很好地利用android中的传感器。从确定智能手机的位置和解释物理传感器,到处理图像、音频和识别语音,你将学会如何有效地调用传感器相关的api。使用这些信息,不仅能在开发过程中节省时间,而且还能创建融合了新层次的交互和自动化的特色应用。

  主要内容

  介绍了实现位置跟踪和接近警报的多种方法

  揭秘sensormanager api中物理传感器背后的物理原理,从而让你了解正确的应用方式

  展示了算法代码来解释带噪声的传感器数据并检测其变化

  演示了如何测量设备属性,例如方向和移动,以及类似相对高度这样的环境属性

  探究如何使用android开放附件(android open accessory,aoa)来访问外部传感器

  介绍近场通信(nfc)技术及其api

  提供图像和信号处理代码来检测摄像头和麦克风所捕获到的内容

  给出使用android语音识别和文本转语音api来创建可靠、用户友好、带语音功能的应用所需的所有组件

 

目录

《android传感器高级编程》

第ⅰ部分 位 置 服 务

第1章 android位置服务简介 3

1.1 用于确定位置的方法 3

1.1.1 gps提供者 4

1.1.2 网络提供者(network provider) 7

1.2 小结 9

第2章 确定设备当前位置 11

2.1 了解你的工具 12

2.1.1 locationmanager 12

2.1.2 location provider 12

2.1.3 location 13

2.1.4 criteria 13

2.1.5 locationlistener 14

2.2 设置android清单 14

2.3 确定合适的位置提供者 14

2.3.1 gps位置提供者 15

2.3.2 网络位置提供者 15

2.3.3 被动位置提供者 15

2.3.4 精确度与电池寿命 16

2.4 获取位置更新 16

2.4.1 使用locationlistener获取位置更新 17

2.4.2 使用广播intent来获取位置更新 17

2.5 实现示例应用 17

2.5.1 实现locationlistener 17

2.5.2 获取locationmanager的句柄 19

2.5.3 请求位置更新 22

2.5.4 自行清理 23

2.5.5 启动位置设置活动 24

2.6 小结 25

第3章 跟踪设备的移动 27

3.1 收集位置数据 28

3.1.1 使用广播接收器获取位置更新 28

3.1.2 使用服务 33

3.2 查看跟踪数据 35

3.3 过滤位置数据 40

3.4 持续的位置跟踪和电池寿命 43

3.4.1 减少位置更新频率 43

3.4.2 限制位置提供者 44

3.5 小结 44

第4章 接近警报 45

4.1 应用结构 45

4.1.1 地理编码 46

4.1.2 设置接近警报 50

4.1.3 对接近警报做出响应 52

4.2 接近警报的局限性 55

4.2.1 电池寿命 55

4.2.2 权限 55

4.3 更有效的接近警报 55

4.4 小结 60

第ⅱ部分 推断来自物理传感器的信息

第5章 物理传感器概述 63

5.1 定义 64

5.2 android传感器api 65

5.2.1 sensormanager 66

5.2.2 sensor 66

5.2.3 传感器速率 66

5.2.4 传感器范围和分辨率 67

5.2.5 sensoreventlistener 68

5.2.6 sensorevent 68

5.2.7 sensor list 69

5.3 感知环境 81

5.3.1 sensor.type_light 81

5.3.2 sensor.type_proximity 82

5.3.3 sensor.type_pressure 83

5.3.4 sensor.type_relative_humidity 86

5.3.5 sensor.type_ambient_temperature 86

5.3.6 sensor.type_temperature 86

5.4 感知设备方向和移动 87

5.4.1 坐标系 87

5.4.2 全局坐标系 87

5.4.3 设备坐标系 88

5.4.4 角度 88

5.4.5 sensor.type_accelerome-ter、.type_gravity以及.type_linear_acceleration 88

5.4.6 sensor.type_gyroscope 90

5.4.7 sensor.type_magnetic_field 91

5.4.8 sensor.type_rotation_vector 93

5.4.9 sensormanager.getorientation() 93

5.4.10 sensormanager.getinclination() 96

5.4.11 传感器融合方案 97

5.5 小结 97

第6章 误差及传感器信号处理 99

6.1 定义 99

6.1.1 准确度和精确度 100

6.1.2 误差类型 101

6.1.3 修正误差的技术 102

6.2 滤波器 103

6.2.1 低通滤波 103

6.2.2 高通滤波 107

6.2.3 带通滤波 109

6.2.4 kalman滤波器的介绍 110

6.3 使用传感器融合技术更好地确定方向 111

6.4 小结 114

第7章 确定设备方向 117

7.1 预览示例应用 117

7.2 确定设备方向 118

7.2.1 重力传感器 118

7.2.2 加速计和磁强计 119

7.2.3 重力传感器和磁强计 120

7.2.4 旋转矢量 120

7.2.5 详细实现 120

7.3 northfinder 139

7.4 小结 142

第8章 检测运动 143

8.1 加速度数据 144

8.1.1 加速计数据 144

8.1.2 线性加速度传感器数据 146

8.1.3 设备运动时的数据 146

8.1.4 总加速度 148

8.2 代码实现 148

8.2.1 determinemovementactivity 148

8.2.2 accelerationeventlistener 152

8.3 小结 154

第9章 感知环境 155

9.1 气压计与gps 156

9.2 示例应用概述 156

9.2.1 详细实现 157

9.2.2 相对海拔高度 172

9.3 小结 181

第10章 android开放外设 183

10.1 概述aoa的历史 183

10.1.1 usb主机与usb外设 184

10.1.2 电源要求 184

10.1.3 支持的android设备 184

10.2 android开发包(adk) 185

10.2.1 硬件组件 187

10.2.2 软件组件 188

10.3 aoa传感器与设备本地传感器 189

10.4 传感器之外的aoa 190

10.5 aoa的局限性 190

10.6 aoa和温度感知 190

10.7 将android外设放至消费者市场 209

10.8 小结 210

第ⅲ部分 感知增强的、模式丰富的外部世界

第11章 近场通信(nfc) 215

11.1 rfid 215

11.2 nfc 218

11.2.1 ndef数据格式 218

11.2.2 如何以及从哪里购买nfc标签 220

11.2.3 nfc的优点和缺点 222

11.3 构建一个库存跟踪系统 225

11.3.1 场景 225

11.3.2 nfc库存演示应用 225

11.3.3 在设置中启用nfc 225

11.3.4 通过应用调试标签 226

11.4 android api 227

11.4.1 androidmanifest.xml文件 227

11.4.2 主activity类 231

11.4.3 整合 245

11.5 未来的设想 246

11.5.1 nfc n-mark 246

11.5.2 点对点nfc共享 246

11.5.3 点对点android api 247

11.6 nfc的新应用 248

11.7 小结 249

第12章 使用摄像头 251

12.1 使用摄像头activity 251

12.1.1 使用activity控制摄像头 252

12.1.2 控制摄像头 256

12.2 创建一个简单的条形码读取器 262

12.2.1 了解条形码 263

12.2.2 自动对焦 267

12.2.3 检测条形码 271

12.3 小结 274

第13章 图像处理技术 275

13.1 图像处理程序的结构 275

13.1.1 图像处理管道 275

13.1.2 常用的图像处理操作 276

13.1.3 jjil 278

13.1.4 jjil与检测android logo 285

13.2 人脸探测 293

13.3 图像处理资源 293

13.4 小结 294

第14章 使用麦克风 295

14.1 介绍android声控开关 295

14.2 使用mediarecorder分析最大振幅 296

14.2.1 录制最大振幅 297

14.2.2 异步音频录制 302

14.3 实现声控开关 304

14.4 分析原始音频 306

14.4.1 设置音频输入参数 306

14.4.2 准备audiorecord 308

14.4.3 录制音频 308

14.4.4 使用onrecordposition-updatelistener 309

14.5 使用巨响检测 314

14.6 使用一致的频率检测 316

14.6.1 预测频率 316

14.6.2 实现乐音声控开关 318

14.7 小结 321

第ⅳ部分 与android对话

第15章 设计带语音功能的应用 325

15.1 了解你的工具 326

15.2 用户界面屏幕流 328

15.3 语音操作类型 329

15.4 语音用户界面设计 330

15.4.1 决定适合语音操作的任务 330

15.4.2 设计应用和用户所说的内容 331

15.4.3 设计完成之后 337

15.5 测试设计 337

15.6 小结 338

15.7 参考文献 338

第16章 使用语音识别和文本转语音api 339

16.1 文本转语音 339

16.1.1 初始化 340

16.1.2 朗读 354

16.2 语音识别 365

16.2.1 初始化 366

16.2.2 使用recognizerintent 370

16.2.3 使用speechrecognizer的直接语音识别 392

16.3 小结 394

第17章 匹配所说的话 395

17.1 语音命令的各个部分 395

17.2 单词识别 397

17.3 匹配持久化存储中的命令单词 405

17.3.1 sqlite全文本搜索 406

17.3.2 使用lucene进行单词搜索 414

17.4 多部分命令 419

17.4.1 忽略潜在的冲突 420

17.4.2 考虑顺序 421

17.5 使用语法 426

17.6 小结 426

第18章 执行语音操作 427

18.1 食物对话vui设计 427

18.2 定义和执行语音操作 428

18.3 执行voiceactioncommand 434

18.4 为语音操作实现alertdialog 437

18.5 实现多轮次语音操作 442

18.5.1 实现多轮次addfood 442

18.5.2 实现多轮次removefood 445

18.6 做出最佳猜测 448

18.6.1 放宽匹配的严格度 448

18.6.2 放宽命令之间的严格度 450

18.6.3 做出有根据的猜测 451

18.7 在识别失败时做出响应 453

18.7.1 确定不是命令 455

18.7.2 确定不准确的识别 456

18.7.3 没有理解 456

18.8 小结 456

第19章 实现语音激活 457

19.1 实现语音激活 458

19.1.1 启动语音识别 458

19.1.2 在activity中实现语音激活 461

19.1.3 使用移动检测激活语音识别 465

19.1.4 使用麦克风激活语音识别 467

19.1.5 使用持续的语音识别激活语音识别 469

19.1.6 使用nfc激活语音识别 473

19.2 实现持久的语音激活 475

本图书信息来源:互动出版

《Android传感器高级编程》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. SCTF 2014 pwn题目分析

    因为最近要去做ctf比赛的这一块所以就针对性的分析一下近些年的各大比赛的PWN题目.主防项目目前先搁置起来了,等比赛打完再去搞吧. 这次分析的是去年的SCTF的赛题,是我的学长们出的题,个人感觉还是很 ...

  2. js复制文字

    一.原理分析 浏览器提供了 copy 命令 ,可以复制选中的内容 document.execCommand("copy") 如果是输入框,可以通过 select() 方法,选中输入 ...

  3. eclipse maven 配置

    http://www.cnblogs.com/little-YTMM/p/5970878.html

  4. zabbix api 设置维护模式

    通过zabbix提供的api进行维护模式的设置 #!/usr/bin/env python # -*-coding:utf-8-*- import urllib import urllib2 impo ...

  5. redis实现分布式锁工具类 灰常好用

    public interface RedisDistributionLock { /** * 加锁成功,返回加锁时间 * @param lockKey * @param threadName * @r ...

  6. Qt Installer Framework实战

    Qt Installer Framework是Qt发布的安装程序支持框架,只需要简单的配置就可以生成安装文件,同时可以通过javascript脚本来定制安装过程. 目录结构 config packag ...

  7. 给出一列数a1,a2,a3....an,求它们的逆序对数,即有多少个有序对(i,j) 使得iaj,n高达10的6次方

    //归并排序 //#include<stdio.h> //#include<string.h> //#include<algorithm> //#include&l ...

  8. [Usaco2015 Feb]Censoring --- AC自动机 + 栈

    bzoj 3940 Censoring 题目描述 FJ把杂志上所有的文章摘抄了下来并把它变成了一个长度不超过10^5的字符串S. 他有一个包含n个单词的列表,列表里的n个单词记为T1......Tn. ...

  9. Mac 配置几个环境变量

    终端    open -t ~/.bash_profile  打开.bash_profile export PATH=${PATH}:/Users/maxinliang/Android/sdk/pla ...

  10. 比较page、request、session、application的使用范围(转自用)

    (1)直接在web contain中进行对象的实例化. 内置对象 类型 作用域 pageContext javax.servlet.jsp.pageContext page request javax ...