這裡主要做個記錄。
ios中其實提供了四個框架可以讓我們去實現藍芽連線
其中gamekit框架是在ios7的時候過期了,之前常用於遊戲的連線,gamekit框架可以使用藍芽在玩家之間建立乙個對等連線,然後彼此之間可以對戰,蘋果取而代之的是multipeerconnectivity,這兩個框架都只能用於ios裝置直接的連線。
externalaccessory框架是用於第三方藍芽裝置互動的,但是該藍芽裝置必須要經過蘋果的mfi的認證。什麼是蘋果的mfi認證其實就是是蘋果公司對其授權配件廠商生產的外接配件的一種標識使用許可。
最後乙個就是corebluetooth這個框架一般來說可能會使用的比較多,但是裝置必須要支援藍芽4.0,藍芽4.0以低功耗著稱,所以也叫ble(bluetooth low energy)
先簡單的說一下gamekit框架的使用步驟
1、先去建立gkpeerpickercontroller就是乙個連線控制器也就是下面這個控制器
2、就是去設定**,通過實現**方法去獲取資料
3、就是去顯示控制器了,這個控制器其實和alertview很像的都是這樣的形式
4、就是去實現gkpeerpickercontrollerdelegate這個的**方法
5、設定控制代碼,讓這個控制代碼去實現乙個接受到資料的方法也就是下面這個方法
- (void) receivedata:(nsdata *)data frompeer:(nsstring *)peer insession: (gksession *)session context:(void *)context
這個方法是必須要去實現的,我們可以看到文件中是這麼描述的
6、使控制器消失
**的簡單實現如下所示,這裡就是想把發給連線的裝置來顯示出來,以這個目的來實現的。
#import "viewcontroller.h"
#import @inte***ce viewcontroller ()@property (weak, nonatomic) iboutlet uiimageview *imageview;
@property (nonatomic ,strong)gksession *session;
@end
@implementation viewcontroller
- (ibaction)connectdevice:(id)sender
#pragma mark 實現gkpeerpickercontrollerdelegate的**方法
//這個**方法會在連線到另一台裝置的時候會去呼叫
//其中peerid 就是另一台裝置得到id,session是乙個會話類,用來接收和傳送資料,傳送資料過去的時候我們肯定是需要乙個session的,所以我們需要去儲存為屬性
-(void)peerpickercontroller:(gkpeerpickercontroller *)picker didconnectpeer:(nsstring *)peerid tosession:(gksession *)session
//下面這個方法就是接受到了資料之後去呼叫的
- (void) receivedata:(nsdata *)data frompeer:(nsstring *)peer insession: (gksession *)session context:(void *)context
- (ibaction)choosepicture:(id)sender
//建立控制器
uiimagepickercontroller * picker = [uiimagepickercontroller new];
//設定型別
picker.sourcetype = uiimagepickercontrollersourcetypephotolibrary;
//設定**
picker.delegate = self;
[self presentviewcontroller:picker animated:yes completion:^];
}//實現**方法,獲取
-(void)imagepickercontroller:(uiimagepickercontroller *)picker didfinishpickingmediawithinfo:(nsdictionary*)info
- (ibaction)sendpicture:(id)sender
關於core bluetooth,網上的介紹有很多,我也不在此介紹了,就簡單的說幾個概念把
中間裝置: cbcentralmanager
外設: 也就是你的中心裝置要連線的裝置
廣播:外部裝置不停的散播的藍芽訊號,讓中心裝置可以掃瞄到,也是我們開發中接收資料的入口。
服務:外部裝置在與中心裝置連線後會有服務,可以理解成乙個功能模組,中心裝置可以讀取服務,篩選我們想要的服務,並從中獲取出我們想要特徵。乙個裝置可以有多個服務
特徵:服務中的乙個單位,乙個服務可以有多個特徵,特徵會有乙個value,一般我們向藍芽裝置寫入資料、從藍芽裝置讀取資料就是這個value。特徵是與外界互動的最小的單位
uuid:區分不同服務和特徵的唯一標識,使用這個我們可以區別出不同的特徵和服務
裝置裡面的服務啊特徵啊,這些功能均由藍芽裝置硬體廠商提供,哪些用來互動,哪些用來只能讀取,都會有說明。
我們使用core bluetooth是以中心來開發的話步驟大致如下
1、建立中心裝置
2、掃瞄外設
3、連線外設
4、先去掃瞄外設中的服務再去掃瞄特徵
5、利用特徵和外設進行資料互動
6、斷開連線
摘抄網路
蘋果手機可以作為藍芽外設端,被藍芽**端來掃瞄連線互動資料,實現模擬藍芽外設硬體。通過閱讀corebluetooth庫,可以找到乙個cbperipheralmanager的類,該類主要的作用就是允許你來管理發布services,把這些services廣播給其他的裝置。
藍芽4 0簡介
藍芽4.0包含了3種藍芽規格 1.傳統藍芽 對應的標識名稱為 bluetooth 2.高速藍芽 對應的標識名稱為 bluetooth smart ready 3.低功耗藍芽 ble 對應的標識名稱為 bluetooth smart 這三種規格既可以組合使用也可以分開使用,下面是對應可連線的裝置 注 ...
iOS藍芽學習
在ios中提供4個框架用於藍芽的連線 gamekit.framework 只能用於ios裝置之間連線,且是同乙個應用。ios7之前一般使用這個 multipeerconnectivity.framework 只能用於ios裝置之間連線,且是同乙個應用。ios7之後使用這個來代替gamekit.fra...
iOS藍芽開發
直接看 首先推薦去看官方文件哦 現將建立藍芽工程的要點總結一下,由於工程主要涉及中心模式,所以只總結中心模式的用法 1,引入corebluetooth.framework 2,實現藍芽協議,如 h檔案如下 protocol cbcentralmanagerdelegate protocol cbpe...