
正文
ios开发流程,iOS流程
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
iOS 低功耗蓝牙4.0开发指南。
1.什么是蓝牙4.0,蓝牙其它标准又是什么?
详细描述:低功耗蓝牙(Low Energy; LE),又视为Bluetooth Smart或蓝牙核心规格4.0版本。其特点具备节能、便于采用,是蓝牙技术专为物联网(Internet of Things; IOT)开发的技术版本。所以它最主要的特点是低功耗,普及率高。现在所说的蓝牙设备,大部分都是在说4.0设备,ble也特指4.0设备。 在4.0之前重要的版本有 2.1版本-基本速率/增强数据率(BR/EDR) 和 3.0 高速蓝牙 版本,这些统称为经典蓝牙。4.0还有4.1和4.2的小版本,其中4.2版本对传输速率做了进一步他提升,提高了2.5倍,苹果从iphone6开始使用4.2,最新的蓝牙标准为蓝牙5.0,其中最大的特点连接范围扩大了4倍,速度又提高了2倍,无连接数据广播能力提高了8倍,增加了蓝牙组网的能力。
2.蓝牙开发必须知道的概念。
2.1.1 central和peripheral:
蓝牙应用开发中,存在两种角色,分别是central和peripheral(pə’rɪfərəl) ,中文就是中心和外设。比如手机去连接智能设备,那手机就是central,智能设备就是peripheral。大多时候都是central去连接peripheral的场景。
2.1.2 广播和连接:
peripheral会发出广播,central扫描到广播后,可以对设备进行连接,发出connect请求,peripheral接收到请求后,同意连接后,central和peripheral就建立了连接。
2.1.3 连接后的操作:
write,read,notify,indecate, response or not …
indecate和notify的区别就在于,indecate是一定会收到数据,notify有可能会丢失数据(不会有central收到数据的回应),write也分为response和noresponse,如果是response,那么write成功回收到peripheral的确认消息,但是会降低写入的速率。
2.1.4 协议:
每个具体的智能设备,都约定了一组数据格式,这个就是数据协议,例如手环中获取到数据0X001023,其中第2位到第5位表示步数,那么就2310就是步数的16进制的数据,转换成10进制就是8976步,需要注意的是,设备端都是小端模式,所以取4位时候,高字节在前低字节在后。
3. iOS蓝牙应用的一般开发流程。
4. 蓝牙的数据交互。
write,read,notify,indecate, response or not … 都是容易理解的,indecate和notify对应的是长连接,建立indecate后,peripheral可以随时往central发送数据。
indecate和notify的区别就在于,indecate是一定会收到数据,notify有可能会丢失数据(不会有central收到数据的回应),write也分为response和noresponse,如果是response,那么write成功回收到peripheral的确认消息,但是会降低写入的速率。
对于一个charateristic,他的读写订阅的权限是peripheral决定的,熟悉可以被同时设置,一般会根据外设的功能来决定。
5.蓝牙ota DFU。
蓝牙ota,DFU(Device Firmware Update)指的是蓝牙设备的固件升级,其实是一整套流程,不同的蓝牙芯片,ota的流程有不同之处,我这里用ti的芯片举例。步骤为:切系统(bootloader mode),重启,传输数据,验证数据,切系统,重启,完成。
其中数据传输也会分成很多节去发送,没法送一段数据,做一次数据校验。
6.ota存在的问题。
每个智能设备的速率,功耗,存储都会有很多限制,导致很多设备会自己去实现ota的功能,自定义流程和数据传输方式,导致许多设备都是有自己私有的ota模式和协议,所以在做开发的时候,要仔细阅读设备协议中对ota的描述。
7.如何做自动重连。
只需要在设备断开连接的委托方法中,重新调用gatt.connet或者是centralManager.connet方法就可以了,无论当时设备是否有点,是否在周围,当设备再次开会或者连接到可连接范围内,都会自动被连上。
8.连接失败处理。
分两个平台来说,iOS端也有连接失败的委托,但是好像几乎不会发生这种情况,而对于同款设备,android常常会出现连接失败的情况,status != BluetoothGatt.GATT_SUCCESS,android端开发请不要把连接失败和断开连接放在一块处理,因为断开连接可以直接尝试重新连接,而连接失败后尝试重新连接,需要加一些延时,并且需要gatt.close,清空一下状态,否则会把gatt阻塞导致手机不重启蓝牙就再也无法连接任何设备的情况 。
9.后台运行。
iOS后来运行,需要设备中info.Plist权限,key:Required background modes ,value: bluetooth-central(手机作为central) , bluetooth-peripheral。
10.同时连接多个设备。
使用同一个CBCentralManager,通过进入委托的peripheral的identifier区分不同的设备,进行不同的操作和处理。
11.扫描广播包。
所有外设,只有在发出广播包的情况下,才能被central发现,绝大多数情况下,外设被连接后就不会发出广播(也有例外),很多人遇到无法找到设备的问题,大多属于这种情况。
12.提高蓝牙连接速度。
无论是iOS,还是android,都可以通过已绑定的设备,在不开启扫描的情况下进行快速连接,iOS需要的参数是peripheral的identifier,android需要mac地址。但android和iOS还是有一些区别的,比如iOS不能拿到已绑定的设备list,但是可以通过UUID去拿到peripheral的实例。而android可以拿到已绑定的设备list。android绑定过程需要手动调用createBond的方法,而iOS在连接成功一次后会自动绑定。 android在处理createBond时,常常会应为不同手机平台,不同设备,会产生兼容性的问题,这点需要注意。
13.定向扫描。
在扫描时候可以传入serviceUUID,这样可以扫描到特定条件的设备,提高扫描的速度,排除干扰。
14.如何获取mac地址。
而iOS出于苹果的安全策略问题,无法直接获得mac地址,只能得到一个mac地址换算出来的identifier。
相关问答
Q1: uniapp开发App,ios发布流程
第一步:在 App Store Connect 里,点击【我的APP】,选择你的应用;
第二步:添加新版本,然后把升级信息填完,选择刚刚上传的版本作为发布版本
1)关于版本信息:填写版本升级的描述;
2)app预览:让设计做两种尺寸的图,关于app的功能介绍;
3)然后就是构建版本了,选择刚刚上传的版本;
4)app审核信息备注:登录流程/主要功能流程;
5) 版本发布一般选择手动发布;
6)广告标识符通常选择【是】,标识复选框通常选后三个即可;
7) 最后提交审核就可以了。
Q2: iOS 开发者公司账号申请流程
本文介绍公司开发者申请流程。
总步骤如下:
详细操作:
1.注册Apple账号, 自行注册即可,最好是用专门的公司邮箱(如 iOSDev@xxx.com ),或新注册一个邮箱来用
2.进入选择开发者类型的页面
Before You Enroll - Apple Developer Program - Apple Developerdeveloper.apple.com
3. 申请邓白氏码。 若公司之前没申请过邓白氏码,则在 “A D-U-N-S® Number“ 栏点击 “ Learn more “
点击 “ D-U-N-S Numberlook up tool “ 输入企业信息并进行查询和申请邓白氏码
公司资料按实际填即可,下方的联系方式写你自己的,会陆续发邮件到下面的邮箱,电话也可能会打过来询问信息。
4. 邓白氏码审核开始的通知。 提交申请后没多久(笔者是1小时内)就会收到审核开始的通知,给你一个request id,还有告知你预计审核截止日期(笔者是说最晚13天内审核完成,据网友说超过5天可以电话或邮件去催),还说可能会电话联系,请保持电话畅通。
5. 邓白氏码审核确认邮件。 在等待1~7天后(笔者等了一天就收到了,也许现在效率提高了),收到邓白氏码审核信息的确认邮件,需要完善更多公司信息,按照邮件提示截止日期前回复邮件(笔者邮件是说两天内回复),1天内就能邮件收到邓白氏码了,邮件还说了一些注意事项,要仔细看。
邮件内容如下:
苹果项目联系人您好,
这里是上海华夏邓白氏商业信息咨询有限公司, 您必需签署附件确认知悉函(左侧公司:填写公司注册名;授权代表签字:具体苹果项目负责人签字,无需法人代表签字)方可申请邓氏编码(注:如未签知悉函,不予申请邓氏编码)。
您在苹果开发者网站提交的邓氏编码申请我们已收到。现需要您提供以下10条信息,请务必于2018/4/28下午3点前回复(如所提供Email是公司邮箱,我们可能无法收到,请换其它邮箱回复,主题不变。)
一天之内就审核通过了,收到邮件
贵司的审核已完成。邓氏编码会在1-2工作日内系统自动发送到您在苹果留的邮箱,请注意查收!(拿到编码请过 2-14 个工作日再使用,数据上传需要时间)
其中说,邓白氏码拿到之后不能马上用,要等 2~14 个工作日后才能用来开通公司账号,因为时间太短苹果公司可能还没拿到那边提交的邓白氏码,导致验证失败。
而且若三次都验证失败,苹果公司还会将该邓白氏码重置,也就是你要重新走一遍申请流程......
6. 申请开通公司账号。 稳妥的办法是收到邓白氏码再等七个工作日去提交一下,若不行,等3个工作日,再不行再等5个工作日吧.
再回到这申请页面
Before You Enroll - Apple Developer Program - Apple Developerdeveloper.apple.com
点击最下方的 “ Start Your Enrollment “
填写公司信息和邓白氏码,提交开通公司开发者账号的申请,等待苹果公司电话联系你确认公司信息。
7. 付费开通。 笔者等了2天就收到苹果公司来电,确认公司信息后就说通过了,然后就收到 Apple Developer 的邮件了,按邮件网址点进去,付费后就能开通公司账号了,用一张VISA/Master + 银联标识信用卡付费即可, 99美元/年
(不是VISA/Master + 银联双标识的信用卡可能会付费失败)
至此,公司开发者账号开通成功了。
PS: 要有一个公司官网,没有的话先做个静态页面也行
参考:
[img]






