传感器要点汇总

#pragma mark - 一. UIDynamic

#pragma mark 1. 重力 (掌握)

UIGravityBehavior

1. 创建物理仿真器(顺便设置仿真范围)

2. 创建物理仿真行为(顺便设置物理仿真元素)

3. 将仿真行为添加到仿真器中

#pragma mark 2. 碰撞 (掌握)

UICollisionBehavior

1. 创建物理仿真器(顺便设置仿真范围)

2. 创建物理仿真行为(顺便设置物理仿真元素)

3. 将仿真行为添加到仿真器中

#pragma mark 3. 捕捉 (掌握)

UISnapBehavior

1. 创建物理仿真器(顺便设置仿真范围)

2. 创建物理仿真行为(顺便设置物理仿真元素)

3. 将仿真行为添加到仿真器中

#pragma mark - 二. 传感器

#pragma mark 1. 距离传感器

1. 开启距离传感器 --> UIDivece --> proximityMonitoringEnabled

2. 注册通知

3. 通知的方法获取通知的值 --> UIDivece --> proximityState

#pragma mark 2. 加速计传感器

#pragma mark 3. 运动管理器

运动管理器包含了加速计 陀螺仪和磁力计

正值负值: 轴的方向, 哪个指向地面, 就会打印出打个方向的值

只要在某个轴上, 进行快速移动, 那么值就会发生变化

一. 加速计的Push方式 --> 只要系统获取到了值, 就会返回给你

1. 创建CMMotionManager对象

2. 判断加速计是否可用

3. 设置采样间隔 单位是秒

4. 开始采样

二. 加速计的Pull方式 --> 在需要的时候来获取值

1. 创建CMMotionManager对象

2. 判断加速计是否可用

3. 开始采样

4. 在需要获取的方法中(比如touch), 可以通过CMMotionManager属性来获取值

三. 陀螺仪和磁力计的方式类似于加速计, 自行替换关键词即可

#pragma mark 4. 摇一摇 (掌握)

使用系统封装号的motionBegan方法

#pragma mark 5. 计步器

CMPedameter

1. 判断是否可用

2. 创建计步器

3. 开始获取

#pragma mark - 三. 蓝牙

#pragma mark 1. GameKit

前提: 使用GameKit/GameKit.h

一. 连接设备

1. 创建GKPeerPickerController连接控制器

2. 设置代理 --> 获取数据

3. 显示控制器 --> show 此控制器和AlertView很像, 不是全屏的, 不用push modal

二. GKPeerPickerController代理方法中

1. 保留session

2. 设置句柄 (设置代理) --> 将来一旦受到数据, 将由句柄的方法来处理数据

3. 消失控制器

4. 一旦设置了句柄, 还需要实现此方法receiveData(如果不记得, 可以跳进官方文档, 进行查看)

三. 句柄方法

1. 将Data转换成image对象

2. 然后设置到界面上

四. 发送方法

1. 将image转换成Data

2. 使用会话类发送数据

#pragma mark 2. CoreBuletooth

1. 建立中央管理者

2. 扫描周边设备

3. 当发现外围设备时, 会调用的方法, 在此方法中记录扫描到的设备

4. (用户点击后的方法)连接扫描到的设备 --> 此方法是咱们自己写的,连接外围设备

5. 设置外围设备的代理 --> 一旦连接外设, 那么将有外设来管理服务和特征的处理

6. 连接到外设时会调用的代理方法中扫描服务

7. 当发现到服务的时候会调用的代理方法中, 获取指定的服务, 然后根据此服务来查找特征

8. 获取指定的特征, 然后根据此特征, 才能根据自己的需求进行数据交互处理

9. 断开连接

来自为知笔记(Wiz)

附件列表

时间: 2024-10-25 19:05:47

传感器要点汇总的相关文章

《Javascript启示录》要点汇总

前言:本文是阅读<Javascript启示录>后的一个读书笔记,对本书的要点进行了一个归纳,不是原创内容哦.要想详细了解相关内容,请阅读原书. 对象是由存储值的已命名属性组成的. JavaScript中的几乎所有对象都可以表现得像对象.复杂值是对象,原始值也可以看做对象. 对象是通过使用new关键字调用构造函数或者通过使用字面量表达式来创建的. 构造函数是对象(Function()对象),因此在JavaScript里对象创建对象. JavaScript提供9个原生构造函数:Object(),A

C/S结构软件测试要点汇总

C/S结构测试要点 1.安装/卸载: 1.安装包:完整性,安装包大小是否达到要求,显示基本信息是否正确,步骤是否明确,内容是否合理. 2.首次安装: 1)是否与其他已安装的软件冲突. 2)各种杀毒软件(卡巴.瑞星.360)对安装程序的影响) 3)安装目录的考虑(中英文字符.长度.空目录.根目录.修改目录.默认目录) 4)干净环境下能否正常完成安装 5)安装后快速启动.桌面.开始程序里面的快捷方式情况等 6)360一键智能安装是否能正常完成 7)安装的程序是否带有插件 3.再次安装: 1)在已经安

JavaScript要点汇总——The Most Important

关于JavaScript的基础变量,运算符的详解以及基本的分支循环嵌套已经在 JS基础变量及JS中的运算符 JS中的循环分支嵌套 说过了,今天我们所说的是做网页中最长用到的东西.内容不算少,要有耐心,慢慢看 1.函数的声明及调用: 函数的声明及调用: 使用函数前要先定义才能调用 1.函数定义有三个部分:函数名,参数列表,函数体 定义函数的格式 function 函数名(参数1,参数2,.......){ 函数执行部分: return 表达式: } 函数调用的格式:直接调用:函数名(参数一的值,参

php 面向对象要点汇总

//类和对象//对象:一切东西都可以看做对象,对象是类的实例化.//类:类是对象的抽象,用来描述众多对象共有的特征. //定义类 class//成员变量 和 成员方法//访问修饰符 public共有的 private 私有的 protected 受保护的//面向对象三大特性://1.封装:目的:保护类,做法:成员私有,方法访问.__get() __set()//构造方法:特殊点:1.写法特殊 2.执行时间特殊:可以实现成员的初始化//$this关键字:$this代表该对象 //2.继承:子类可以

托盘程序要点汇总

1.重启一个进程 var ss = "taskkill /im " + 进程名称 + " /f ";  RunCmd(ss); ProcessStartInfo info = new ProcessStartInfo(); info.FileName =进程路径; var pro = Process.Start(info); pro.WaitForExit(); 2.停止一个进程 var ss = "taskkill /im " + 进程名称 +

混杂要点汇总

1->寄存器的使用 #define GPBCON 0x50000000 /* 定义寄存器地址 */ unsigned int *gpbcon; /* 地址指针 */ *gpbcon=ioremap(GPBCON,4); /*将物理地址重新映射,size = 4 byte*/ writel(value,gpbcon); /*将value写入到gpbcon*/ 2->nfs服务 查看nfs是否安装-- rpm -qa|grep nfs 安装nfs-- yum install nfs* -y 启动r

Objective-C 2.0 基础要点归纳

本文的阅读基本条件: 具备C/C++基础知识,了解面向对象特征 阅读过<Objective-C 2.0 程序设计(第二版)>.<Objective-C 程序设计 第6版>或相关基础OC书籍 参考资源: 1.<Effective Objective-C2.0> 2. <Objective-C 2.0 程序设计(第二版)>/<Objective-C 程序设计 第6版> 3. http://www.cnblogs.com/pengyingh/artic

我(webabcd)的文章索引

[最后更新:2014.08.28] 重新想象 Windows Store Apps 系列文章 重新想象 Windows 8 Store Apps 系列文章 重新想象 Windows 8 Store Apps (1) - 控件之文本控件: TextBlock, TextBox, PasswordBox, RichEditBox, RichTextBlock, RichTextBlockOverflow 重新想象 Windows 8 Store Apps (2) - 控件之按钮控件: Button,

Clean Code 读书笔记九

要点汇总: 一般性问题 方法名称应该准确表达其具体行为 比如: Date newDate = date.add(5)//加5天?5个月? 最好使用addDaysTo 或increaseByDays 明确方法的行为. 使用多态 代替 switch或if else 比如: class RequestHandler { public void handleRequest(int action) { switch(action) { case LOGIN: doLogin(); break; case