Core Bluetooth框架详细解析(一) —— 基本概览

版本记录

版本号 时间
V1.0 2018.02.08

前言

Core Bluetooth框架与蓝牙4.0低功耗设备进行通信。接下来几篇我们就一起看一下这个框架。

Overview

下面先看一下该框架的基本信息。

下面看一下该框架的基本结构。

Core Bluetooth框架提供了您的应用程序与配备了蓝牙低功耗无线技术的设备进行通信所需的类。

不要继承任何Core Bluetooth框架的类。 覆盖这些类不受支持,并导致未定义的行为。

重要:在iOS 10.0或之后链接的iOS应用必须在其Info.plist文件中包含它需要访问的数据类型的使用说明密钥,否则将会崩溃。 要具体访问蓝牙外设数据,必须包含NSBluetoothPeripheralUsageDescription


Topics

1. Classes

  • CBATTRequest

    • CBATTRequest类表示来自远程中央设备(由CBCentral对象表示)的属性协议(ATT)读取和写入请求。 远程中央处理器使用这些ATT请求读取和写入本地外围设备上的特征值(由 CBPeripheralManager对象表示)。 另一方面,本地外围设备使用 CBATTRequest对象的属性来使用CBPeripheralManager类的respondToRequest:withResult:方法来适当地响应读取和写入请求。
  • CBAttribute

    • CBAttribute是一个抽象基类,定义了表示由外设提供的服务方面的对象集合共同的行为。
  • CBCentral

    • CBCentral类表示已连接到在本地设备上实现外设角色的应用程序的远程中央设备。 也就是说,在使用CBPeripheralManager类实现外设角色时,连接到本地外设的中心被表示为CBCentral对象。 远程中心由通用唯一标识符(UUID)标识,由NSUUID对象表示。
  • CBCentralManager

    • CBCentralManager对象用于管理发现或连接的远程外围设备(由CBPeripheral对象表示),包括扫描,发现和连接到广告外设。
  • CBCharacteristic

    • CBCharacteristic及其子类CBMutableCharacteristic表示有关外设服务的更多信息。 CBCharacteristic对象特别表示远程外设服务的特性(远程外设由CBPeripheral对象表示)。 一个特性包含一个单一的值和描述该值的任意数量的描述符。 特征的属性决定特征的值如何被使用以及描述符如何被访问。
  • CBDescriptor

    • CBDescriptor及其子类CBMutableDescriptor表示外设特性的描述符。 CBDescriptor对象特别代表远程外设特性的描述符(远程外设由CBPeripheral对象表示)。 描述符提供有关特性值的更多信息。 例如,他们可以用人类可读的形式描述价值,并描述如何将这些价值格式化以用于展示目的。 特征描述符还指示特征值是否在服务器(外围设备)上配置以指示或通知客户端(中央)何时特征值改变。
  • CBManager

    • Core Bluetooth管理器对象(中央和外围)的抽象基类。
  • CBMutableCharacteristic

    • CBMutableCharacteristic对象表示本地外设服务的特征(本地外围设备由CBPeripheralManager对象表示)。 这个类增加了对它继承的CBCharacteristic类的许多属性的写入权限。
  • CBMutableDescriptor

    • CBMutableDescriptor对象表示本地外围设备特征的描述符(本地外围设备由CBPeripheralManager对象表示)。
  • CBMutableService

    • CBMutableService类将写入权限添加到继承的CBService类中的所有属性。 您可以使用此类在本地外围设备(由CBPeripheralManager对象表示)上创建服务或包含的服务。 创建服务后,可以使用CBPeripheralManager类的addService:方法将其添加到外围设备的本地数据库中。 将服务添加到外围设备的本地数据库之后,该服务将被缓存,并且不能再对其进行更改。
  • CBPeer

    • CBPeer类是一个抽象基类,用于定义表示远程设备的对象的常见行为。 您通常不会创建CBPeer或其具体子类的实例。 相反,系统会在对等发现过程中为您创建它们。
  • CBPeripheral

    • CBPeripheral类代表远程外围设备,通过中央管理器(CBCentralManager的一个实例),您的应用程序已经发现了广告或正在连接到该应用程序。 外设由通用唯一标识符(UUID)标识,由NSUUID对象表示。 外围设备可能包含一项或多项服务或提供有关其连接信号强度的有用信息。
  • CBPeripheralManager

    • CBPeripheralManager对象用于管理本地外围设备的通用属性配置文件(GATT)数据库中的已发布服务,并将这些服务通告给中央设备(由CBCentral对象表示)。 服务在数据库中时,任何连接的中央服务器都可以看见,并且可以访问服务。 也就是说,如果您的应用程序没有指定bluetooth-peripheral后台模式,则在后台或处于挂起状态时,其服务内容将被禁用;试图访问服务的特征值或特征描述符的任何远程中央设备都会收到错误。
  • CBService

    • CBService及其子类CBMutableService表示外围设备的服务 - 用于完成设备(或设备的某些部分)的功能或特性的数据和关联行为的集合。 CBService对象特别表示远程外围设备的服务(由CBPeripheral对象表示)。 服务可以是主要的或次要的,并且可以包含许多特征或包含的服务(对其他服务的引用)。
  • CBUUID

    • CBUUID类的实例表示蓝牙低能量通信中使用的属性的128位通用唯一标识符(UUID),例如外设的服务,特征和特征描述符。 这个类提供了许多工厂方法来处理开发你的应用程序的长UUID。 例如,不是在代码中传递128位Bluetooth低能量属性的字符串表示形式,而是可以创建代表它的CBUUID对象,并将其传递。
  • CBL2CAPChannel

2. Protocols

  • CBCentralManagerDelegate

    • CBCentralManagerDelegate协议定义了CBCentralManager对象的委托必须采用的方法。 协议的可选方法允许委托监视外围设备的发现,连接和检索。 协议中唯一的required方法表示中央管理器的可用性,当中央管理器的状态更新时调用。
  • CBPeripheralDelegate

    • CBPeripheral对象的代理必须采用CBPeripheralDelegate协议。 委托使用此协议的方法来监视远程外围设备的服务和属性的发现,探索和交互。 这个协议没有required的方法。
  • CBPeripheralManagerDelegate

    • 一个CBPeripheralManager对象的代理必须采用CBPeripheralManagerDelegate协议,一个包含众多可选方法和一个必需方法的协议。 代理使用协议的可选方法来验证发布和广告,并监视来自远程中央设备的读取,写入和订阅请求。 当外设管理器的状态更新时,调用协议的required方法,指示外设管理器是否可用。

3. Reference

4. Related Documentation

后记

本篇已结束,后面更精彩~~~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容