1. 程式人生 > >iOS藍芽開發CoreBluetooth快速入門

iOS藍芽開發CoreBluetooth快速入門

在iOS開發中,實現藍芽通訊有兩種方式,一種是使用傳統的GameKit.framework,另一種就是使用在iOS 5中加入的CoreBluetooth.framework。

利用CoreBluetooth框架,我們可以輕鬆實現兩個iOS裝置、iOS裝置與非iOS藍芽裝置的互動。要注意的一點是目前這個框架只能支援藍芽4.0BLE標準,所以對硬體上是有一定要求的,iPhone 4S及以後的裝置,第三代iPad及以後的裝置是支援這一標準的。

術語解釋

我們首先看一下CoreBluetooth框架的結構。這是CoreBluetooth/CoreBluetooth.h檔案中的宣告。

1 2 3 4 #ifndef _CORE_BLUETOOTH_H_ #define _CORE_BLUETOOTH_H_ #endif #import #import #import #import #import #import #import #import #import #import #import

其中,CBCentral開頭的都是中心裝置類,CBPeripheral開頭的都是外設類。這就要講到藍芽裝置的兩個角色了。

  • 中心裝置:中心裝置可以理解為是處理資料的iOS裝置,比如你的 iPhone、iPad 等。

  • 外設:外設顧名思義,就是產生資料的外部裝置。這個外部裝置可以是微控制器、嵌入式裝置甚至是另一個iOS裝置等等。外設可以通過其感測器等產生有用資料,資料後通過藍芽傳給中心裝置使用。

在建立連線的之前,外設向外發出廣播資料(advertisementData,官方描述“A dictionary containing any advertisement and scan response data.”),廣播資料是一個字典類資料,中心裝置可以獲取一定範圍內的外設發出的廣播資料。

現在開始

初始化

為了使用CoreBluetooth框架中的回撥方法,我們要使用CBCentralManagerDelegate、CBPeripheralDelegate這兩個協議。

我們先要初始化一個CBCentralManager類的物件。程式碼如下:

1 2 3 4 5 6 7 @interface SKBluetoothManager : NSObject{ CBCentralManager *manager; id delegate; } manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; manager.delegate = self;

掃描外設

初始化完成,我們就可以讓管理器開始掃描外設了:

1 [manager scanForPeripheralsWithServices:nil options:nil];

在裝置發現周圍外設的advertisementData後,會回撥這個方法:

1 - (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI;

其中引數central指回調這個方法的中心裝置,peripheral指發現的外設物件CBPeripheral,advertisementData就是前面說的字典型別廣播資料,RSSI是當前外設的訊號強度,單位是dbm。

剛開始對陌生的藍芽裝置除錯時,建議我們先用一個數組NSArray將所掃描到的外設進行儲存:

1 [_peripherals addObject:peripheral];

連線外設

儲存後,可根據裝置的UUID來確定該裝置是否為我們需要進行操作的藍芽裝置,在確認外設身份後,即可發起對外設的連線操作:

1 2 3 4 5 6 if ([peripheral.identifier.UUIDString isEqualToString:kPeripheralUUID]) { [manager stopScan]; [manager connectPeripheral:peripheral options:nil]; NSLog(@"連線外設:%@",peripheral.description); self.peripheral = peripheral; }

在此步操作後,我們完成了對藍芽裝置的掃描工作,接下來的回撥方法分為兩種情況:

連線到外設後

相關推薦

iOS開發CoreBluetooth快速入門

在iOS開發中,實現藍芽通訊有兩種方式,一種是使用傳統的GameKit.framework,另一種就是使用在iOS 5中加入的CoreBluetooth.framework。 利用CoreBluetooth框架,我們可以輕鬆實現兩個iOS裝置、iOS裝置與非

iOS開發CoreBluetooth詳解

CoreBluetooth的API是基於BLE4.0的標準的。這個框架涵蓋了BLE標準的所有細節。僅僅只有新的iOS裝置和Mac是和BLE標準相容.在CoreBluetooth框架中,有兩個主要的角色:周邊和中央(Peripheral and Central) ,整個框架

iOS開發(二)在裝置端實現Central角色

若想在裝置上實現Central角色的功能,主要有以下步驟: 2.搜尋周圍廣播的裝置 3.與一個外設進行連線,並探索外設提供的服務 4.向外設傳送讀寫characteristic的請求,如果有需要訂閱characteristic值得更新,來跟蹤資料的變化。 myCe

iOS 技術CoreBluetooth 使用手冊

最近很閒,沒什麼事可做,想來不能閒著,所以就想著研究下藍芽相關的技術,所以就嘗試了下,外設和中心裝置都是手機,一個手機做當做虛擬外設,一個作為中心裝置,嘗試連線和通訊一切都還順利。當然也知道在實際開發中會遇到意想不到的問題。過來之人可以一起探討。 文

iOS開發 —— 連線列印機發送16進位制資料的問題

最近在做公司的一個藍芽連線印表機的專案,正常的藍芽連線印表機進行列印沒問題,但是要傳送一個16進位制的指令來獲取藍芽裝置資訊時頗費了一番功夫,現做如下記錄: Byte byteArray[] = {0x1d ,0x67 ,0x61}; NSData *sendData = [NSData data

iOS開發

原作者:===>https://blog.csdn.net/swibyn/article/details/20531593 demo下載 http://download.csdn.net/detail/swibyn/9717588 直接看程式碼 http://blog.

iOS開發連線和資料讀寫

當下藍芽開發可謂是越來越火,不論是智慧穿戴的興起還是藍芽傢俱,車聯網藍芽等等,很多同學也會接觸到藍芽的專案,我從事藍芽開發也有一段時間了,經手了兩個專案。廢話不多說了,先向大家簡單的介紹有關藍芽開發的知識。藍芽低能耗(BLE),以下介紹的都是圍繞iOS的框架展開

iOS開發(二):iOS 4.0中心模式 程式碼實現

上一篇簡單介紹了藍芽的部分基礎知識,詳細的東西大家可以去github上搜babyBluetooth,裡面有一些學習資料 iOS連線外設的流程 建立中心管理者 掃描外設 discoverPeripheral 連線外設 connectPeripheral

ios開發(三)app作為外設被連線的實現

再上一節說了app作為central連線peripheral的情況,這一節介紹如何使用app釋出一個peripheral,給其他的central連線 還是這張圖,central模式用的都是左邊的類,而peripheral模式用的是右邊的類 peripheral模式的流

iOS開發的連線和資料的讀寫

       藍芽開發說簡單也簡單,說不簡單也有點難,開發人員在首次開發藍芽前首先需要搞清楚藍芽開發的概念,還要了解掌握藍芽開發的一整套流程,這樣才能快速上手開發藍芽。       藍芽開發分為兩種模式:管理者模式和中心者模式。管理者模式基本很少用到,相當於iPhone手機

iOS開發把16進位制字串轉換成NSData的方法

把16進位制字串轉換成NSData: -(NSData *)hexString:(NSString *)hexString { int j=0; Byte bytes[20];

iOS開發(一)相關基礎知識

藍芽常見名稱和縮寫 MFI ======= make for ipad ,iphone, itouch 專們為蘋果裝置製作的裝置 BLE ==== buletouch low energy,藍芽4.0裝置因為低耗電,所以也叫做BLE peripher

iOS 開發——CoreBluetooth開發(一)

最近要做關於iOS上的藍芽開發專案,為此閱讀了蘋果的官方文件,這裡做一些翻譯和摘錄和大家共享交流。(如需轉載請註明出處) 關於Core BlueTooth Core BlueTooth是一個iOS的開發框架,其中包含了若干類,能夠和低功耗藍芽(符合藍芽4

IOS Ble開發實現

1.本篇博文闡述如何開發Ble藍芽。在藍芽中的一些常見服務,掃描,以及連結; 主藍芽類檔案.h 主藍芽類檔案.m UUID檔案 藍芽列表展示的檔案 一:引入Ble藍芽的框架<CoreBluetooth/CoreBluetooth.h>

iOS基於CoreBlutooth的開發

首先如同網路一般,藍芽也類似的可以分服務端和客戶端,CoreBlutooth中有兩個角色,一個是Peripheral,相當於伺服器端,也就是我們開啟手機藍芽搜尋時找到的各個裝置;一個是Central,相當於客戶端,也就是我們使用的手機,這兩個角色和一般的手機使用主權引起的角

iOS近場通訊(開發,WiFi開發)

標籤: ios it 近場通訊 藍芽 wifi 分類: iOS 1 AirDrop (UIActivityViewController類) 功能:實現iOS裝置間的檔案和資料分享。AirDrop使用藍芽來掃描周圍的裝置,當兩臺裝置通過藍芽建立起了連線,考慮到

iOS開發

因工作的需要, 前段時間整理了一下IOS藍芽通訊相關的東西,把整理的一個成果給大家分享一下。如果有不足的地方歡迎指正。 一、專案背景 簡單介紹一下我所做的東西,裝置目前有四個,分別是體脂秤、血壓計、血糖儀、監護儀等。從名稱大家應該知道這些是什麼東西了。對,沒錯,這些裝置主要

開發BLE協議流程(iOS為例)

憑藉大腦殘留的記憶寫的BLE的一些概念與接入流程。IOT領域與智慧裝置通訊的方式除了zigbee wifi 就算藍芽了,BLE(bluetooth low energy)看名字就是低功耗的一個東西,通俗來說ble很簡單啊,因為無論是iOS還是android 提供的api 都遮

Android BLE 開發入門

初識低功耗藍芽 Android 4.3(API Level 18)開始引入Bluetooth Low Energy(BLE,低功耗藍芽)的核心功能並提供了相應的 API, 應用程式通過這些 API 掃描藍芽裝置、查詢 services、讀寫裝置的 characteris

(一)CoreBluetooth iOS “中心模式”

使用Corebluetooth框架進行藍芽開發,有兩種模式:一種是中心模式,另一種是外設模式。 中心模式 分為以下幾步: 1.建立中心裝置 2.掃描外部裝置 3.連線外部裝置 4.掃描外部裝置的服務和特徵 5.利用外部裝置的特徵與外部裝置手法資料