日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

蓝牙通信,通过蓝牙传照片

發布時間:2024/5/8 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝牙通信,通过蓝牙传照片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

#藍牙通信


<b>

  • GameKit(P2P)
  • ShowHand玩游戲

#實現

連接對端

-(void)connectPeer{// 1. 實例化一個對端選擇視圖控制器GKPeerPickerController *picker = [[GKPeerPickerController alloc]init];// 2. 設置代理[picker setDelegate:self];// 3. 顯示視圖控制器[picker show];}

###對端選擇器代理方法 ###完成對端連接

- (void)peerPickerController:(GKPeerPickerController *)picker didConnectPeer:(NSString *)peerID toSession:(GKSession *)session{NSLog(@"連接已經建立");// session回話,一個完整的連接過程_gkSession = session;// 設置數據處理對象,類似于delegate[_gkSession setDataReceiveHandler:self withContext:nil];// 關閉選擇器[picker dismiss];}

發送照片

- (void)sendPhoto{ // 利用session發送數據NSData *imageData = UIImagePNGRepresentation(_imageButton.imageView.image);[_gkSession sendDataToAllPeers:imageData withDataMode:GKSendDataReliable error:nil];}

如果精通TCP協議、UDP協議

  • 要發送的數據(二進制的)

  • 數據發送模式

    • GKSendDataReliable :確保數據發送成功(TCP協議,對網絡壓力大)
    • GKSendDataUnReliable :只管發送不管成功(UDP協議,對數據完整性要求不高,對網絡壓力下)

  • ###接受照片

    • 數據接受處理方法,此方法需要從文檔中粘貼出來,此智能提示沒有

      - (void)receiveData:(NSData *)data fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context { NSLog(@"數據接收"); // 將NSData轉換成UIImage,之所以能轉換成UIImage是因為我們發送的就是UIImage UIImage *image = [UIImage imageWithData:data];//然后可以得到image對象 //接著可以去存儲或者顯示在ImageView }

    簡單回顧

    ##圖片選擇器

    • 選擇照片

    <pre> - (void)selectPhoto { // 1. 首先判斷照片源是否可用 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { // 0)實例化控制器 UIImagePickerController *picker = [[UIImagePickerController alloc]init]; // 1)設置照片源 [picker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; // 2) 設置允許修改 [picker setAllowsEditing:YES]; // 3) 設置代理 [picker setDelegate:self]; // 4) 顯示控制器 [self presentViewController:picker animated:YES completion:nil]; } else { NSLog(@"照片源不可用"); } } </pre>

    ###ImagePicker代理方法

    <pre> - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { UIImage *image = info[@"UIImagePickerControllerEditedImage"]; [_imageButton setImage:image forState:UIControlStateNormal]; // 關閉照片選擇器 [self dismissViewControllerAnimated:YES completion:nil]; // 需要將照片保存至應用程序沙箱,由于涉及到數據存儲,同時與界面無關 // 可以使用多線程來保存圖像 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // 保存圖像 // 1. 去圖像路徑 NSArray *docs = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *imagePath = [docs[0] stringByAppendingPathComponent:@"abc.png"]; // 2. 轉換成NSData保存 NSData *imageData = UIImagePNGRepresentation(image); [imageData writeToFile:imagePath atomically:YES]; }); } </pre>

    轉載于:https://my.oschina.net/nofree/blog/226548

    總結

    以上是生活随笔為你收集整理的蓝牙通信,通过蓝牙传照片的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。