標籤:
最近簡單的瞭解了一下藍芽的使用,大致的步驟也就是串連裝置,發送資料,接收資料
1、首先匯入標頭檔
#import <GameKit/GameKit.h>
2、設定會話屬性,傳輸資料需要的會話層
// 保留會話@property (weak, nonatomic) GKSession *session;
3、遵守代理
UINavigationControllerDelegate,UIImagePickerControllerDelegate,GKPeerPickerControllerDelegate
4、首先串連裝置
// 1. 建立尋找裝置的控制器 GKPeerPickerController *ppc = [[GKPeerPickerController alloc] init]; // 2. 設定代理 ppc.delegate = self; // 3. 彈出控制器 [ppc show];
5、實現代理方法,做串連成功後的操作
// 裝置串連成功後會調用該方法 peerID:裝置節點ID session:會話對象 一旦建立串連之後就會建立會話,然後互相傳遞資料- (void)peerPickerController:(GKPeerPickerController *)picker didConnectPeer:(NSString *)peerID toSession:(GKSession *)session{ NSLog(@"%@",peerID); // 設定資料接收著 [self.session setDataReceiveHandler:self withContext:nil]; self.session = session; [picker dismiss]; // 退出尋找裝置的控制器}
6、發送資料
// 發送圖片- (IBAction)sendImage:(id)sender { if (self.imageView.image) { return; } // 發送到指定裝置// [self.session sendData:<#(NSData *)#> toPeers:<#(NSArray *)#> withDataMode:<#(GKSendDataMode)#> error:<#(NSError *__autoreleasing *)#>] NSData *data = UIImagePNGRepresentation(self.imageView.image); // 發送到所以裝置 // GKSendDataReliable 可靠傳輸(資料一定會被傳達,網路有變化時,會重新串連,再次傳輸) ->TCP // GKSendDataUnreliable 不可靠傳輸(資料只會傳輸一次,沒有傳到就算了)->UDP [self.session sendDataToAllPeers:data withDataMode:GKSendDataReliable error:nil];}
7、接收資料
// 接受資料// data: 接收到的資料// peer: 從哪一個節點接收到的資料// session: 會話// context:- (void)receiveData:(NSData *)data fromPeer:(NSString *)peer inSession:(GKSession *)session context:(void *)context{ UIImage *recImage = [UIImage imageWithData:data]; self.imageView.image = recImage; UIImageWriteToSavedPhotosAlbum(recImage, nil, nil, nil); // 儲存圖片}
8、需要注意的是,GameKit藍芽只能用於iOS裝置之間的串連,只能用於同一個應用程式之間的串連,其實有關藍芽方面的知識比較多,操作起來還是挺複雜的,這裡唯寫了很簡單的一些操作。
iOS 藍芽的簡單使用