Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2697176
  • 博文数量: 877
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5921
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-05 12:25
个人简介

技术的乐趣在于分享,欢迎多多交流,多多沟通。

文章分类

全部博文(877)

文章存档

2021年(2)

2016年(20)

2015年(471)

2014年(358)

2013年(26)

分类: iOS平台

2015-09-28 19:42:55

IOS开发之——蓝牙通信浅谈
http://blog.csdn.net/zhenyu5211314/article/details/23946317

故事背景:

为什么要研究IOS的蓝牙呢?

答:当然是工作需要啦,公司有个项目是做心电测量的,主要就是通过手持嵌入式设备测量心电,通过蓝牙将数据传送到手机(安卓,IOS),然后手机端解析数据包并绘制曲线,最后上传到服务器保存。目前已经完成了安卓设备的APP开发工作,支持大多数的主流安卓设备(主要安卓各厂商的蓝牙不同,完全兼容希望不大),然后Boss就打算继续开发IOS的版本了,遂让我这个做QT的小白从头搞起IOS。


做IOS的蓝牙开发需要哪些准备工作?

答:用了一上午的时间看了各种大神的解答,受益匪浅,打算选择一种较好的方案实现我的IOS蓝牙之旅,上网各种找啊,把CocoaChinaCode4App翻了个底朝天,大多数都是坏消息,为什么呢,客官听我娓娓道来。


你对IOS蓝牙了解多少?

答:首先IOS设备本身的蓝牙并不是用来给你传输文件的,这点你要深切的理解,苹果之所以给他们装上蓝牙不过是让你练练蓝牙耳机啊,蓝牙音箱之类的,因为非越狱苹果上面听歌不都是要花钱的么,如果你用蓝牙把歌曲传给别人,那不是侵权了么(当然,在TC没有侵权一说),所以啊,苹果在硬件上面就把你传输文件给限制了。

而且苹果在蓝牙4.0之前还有个特别变态的,就是只有IOS设备和苹果认证的MFI设备才可以被IOS设备检索到,所以啊,什么安卓蓝牙啊,自己做的蓝牙啊,想连上苹果,告诉你,木有可能!!!

但是,在蓝牙4.0出来之后(注意,硬件上要4s以上,系统要ios6以上才能支持4.0),苹果开放了BLE通道,真是屌丝的福音啊,我们这些没有MFI认证的蓝牙设备终于可以连接非越狱的苹果了,所以也可以开发蓝牙应用咯。但是啊,这得是蓝牙4.0才有的,也就是说爱疯4也不支持哦,所以完全兼容还是没可能。

注:上面说的都是针对非越狱的IOS设备的,越狱的当然有更好的办法了,办法下面细说。


首先,你要了解你的目的是什么,一般的IOS蓝牙开发有以下三种目的:

1. IOS设备和IOS设备之间交互

好消息是:ios6.0可以把iPhone手机当从设备了,可以两台iPhone通过蓝牙通信传数据了,有点类似spp协议

坏消息是:我们需要的不是这种模式

这种模式通常用于两个使用IOS设备的土豪之间互相切磋游戏,玩个飞车什么的,需要注意的是


2. IOS设备与MFI认证设备交互

什么是MFI认证呢?意思是(Make For ipod/ipad/iphone),只有少数的硬件厂商才有苹果的MFI认证,如果你看到这,你的蓝牙设备还没设计,而且想发布在AppStore上,而且打算使用蓝牙4.0以下(4.0就不需要MFI了,福音),那你还是找个MFI认证的硬件开始做吧,我们公司已经有产品了,不可能重新设计,方案Pass了。

好消息是:如果你的蓝牙模块还没设计,打算在AppStore上发布,打算使用蓝牙4.0以下(IOS设备都兼容),那你就抓紧找MFI认证的蓝牙模块吧

坏消息是:我们不可能重新设计,所以舍弃


3. IOS设备与非IOS设备交互

这就是我们的现状了,根据这个现状,我们能分析出两种情况:

a. 我想做蓝牙4.0以下的,这样iphone4也能用了

好消息:确实可以兼容iphone4,但是由于苹果封闭,没有那个API给你调,苹果上也根本检索不到非IOS设备,所以你就需要越狱了,调用私有Api连接设备

坏消息:只有越狱的手机才能用,发布到AppStore是妄想

b. 我想做蓝牙4.0的,不全兼容也没事,我想发布在AppStore上

好消息:苹果开放了4.0的BLE通道,你可以用BLE通道通信,而且4.0设备也能检索到

坏消息:对IOS版本和IOS设备双重要求,肯定不能全兼容了


所以,根据你自己的实际情况,选择方案,现总结出以下几种方案:

1. 情景:蓝牙2.0,发布在AppStore上

答:使用MFI认证的蓝牙模块设计你的蓝牙产品

特点:不越狱就能用,IOS设备全兼容

2. 情景:蓝牙2.0,不用MFI

答:不能用苹果的Api了,使用私有Api连接设备

特点:只能越狱的手机才能用了,IOS设备全兼容

3. 情景:蓝牙4.0

答:使用BLE通道

特点:IOS设备不完全兼容,无需越狱,无需使用MFI,可发布在AppStore上


注意:一定要看你的蓝牙版本,这样才能选择方案,我们现在设备的版本是2.0,但是Boss想要发布在AppStore上,所以打算升级成4.0的,只有这么办了


最后附上参考资料:

适合情景2:http://www.cocoachina.com/iphonedev/sdk/2011/1025/3417.html

开发过程注意:%E8%93%9D%E7%89%994.0_For_IOS#cite_note-7

阅读(911) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~