iOS 蓝牙 Corebluetooth

来源:互联网 发布:手机上c语言编程软件 编辑:程序博客网 时间:2024/06/05 05:28
蓝牙的现状

*绝大多数智能手机支持蓝牙4.0(BLE)

*蓝牙芯片发展迅速,在性能和效率方面都有很大提高,且不断变得更小更便宜
*iBeacon +蓝牙,前景一片光明
-应用之一:室内导航
-Estimote公司为iBeacon提供基站
-3个iBeacon基站的预购价格为99美元(约合人民币610元)
-Estimote公司推出的iBeacon基站的最远传输距离为50m,但是他们推荐在10m范围内的使用效果最好
*一块纽扣电池就能为一个iBeacon基站提供长达 2 年的使用寿命,而且是在设备不断对外发射信号的情况下


iOS中提供了4个框架用于实现蓝牙连接
GameKit.framework用法简单
只能用于iOS设备之间的连接,多用于游戏(比如五子棋对战),iOS7开始过期

MultipeerConnectivity.framework
只能用于iOS设备之间的连接iOS7开始引入,用于替代GameKit

ExternalAccessory.framework
可用于第三方蓝牙设备交互,但是蓝牙设备必须经过苹果MFi认证(国内较少)

CoreBluetooth.framework时下热门
可用于第三方蓝牙设备交互,必须要支持蓝牙4.0
硬件至少是4s,系统至少是iOS6
蓝牙4.0以低功耗著称,一般也叫BLE(Bluetooth Low Energy)
目前应用比较多的案例:运动手坏、嵌入式设备、智能家居


CoreBluetooth:
CoreBluetooth测试比较麻烦,正常情况下,得至少有2台真实的蓝牙4.0设备

如何让iOS模拟器也能测试蓝牙4.0程序?
买一个CSR蓝牙4.0USB适配器,插在Mac上
在终端输入sudo nvram bluetoothHostControllerSwitchBehavior="never"
重启Mac
用Xcode 4.6调试代码,将程序跑在iOS 6.1的模拟器上

(苹果把iOS 7.0模拟器对BLE的支持移除掉了)

•CoreBluetooth的使用场景
运动手环、智能家居、嵌入式设备等等(金融刷卡器、心电测量器)

CoreBluetooth的核心结构图


CoreBluetooth的基本常识

每个蓝牙4.0设备都是通过服务(Service)和特征(Characteristic)来展示自己的
一个设备必然包含一个或多个服务,每个服务下面又包含若干个特征

•特征是与外界交互的最小单位
比如说,一台蓝牙4.0设备,用特征A来描述自己的出厂信息,用特征B来收发数据

•服务和特征都是用UUID来唯一标识的,通过UUID就能区别不同的服务和特征

•设备里面各个服务(service)和特征(characteristic)的功能,均由蓝牙设备硬件厂商提供,比如哪些是用来交互(读写),哪些可获取模块信息(只读)等

CoreBluetooth的开发步骤:
-建立中心设备管理器对象
-扫描外设(Discover Peripheral)
-连接外设(Connect Peripheral)
-扫描外设中的服务和特征(Discover Services And Characteristics)
-利用特征与外设做数据交互(ExploreAnd Interact)
-断开连接(Disconnect)



1 0
原创粉丝点击