2019独角兽企业重金招聘Python工程师标准>>>

导入框架

#import "ViewController.h"
#import <GameKit/GameKit.h>@interface ViewController () <GKPeerPickerControllerDelegate,UINavigationControllerDelegate, UIImagePickerControllerDelegate>@property (strong, nonatomic) GKSession *session;/**< 会话 */
@property (weak, nonatomic) IBOutlet UIImageView *icon;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];}// 从相册选择图片
- (IBAction)choose:(id)sender {if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {// 没有相册return;}// 创建图片选择的控制器UIImagePickerController *picker = [[UIImagePickerController alloc] init];picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;picker.delegate = self;[self presentViewController:picker animated:YES completion:nil];
}
#pragma mark - UIImagePickerControllerDelegate
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info {[picker dismissViewControllerAnimated:YES completion:nil];self.icon.image = info[UIImagePickerControllerOriginalImage];
}// 发送数据
- (IBAction)sendData:(id)sender {// 先判断要发送的数据是否存在if (!self.icon.image) {return;}// 发送数据//[self.session sendData:UIImagePNGRepresentation(self.icon.image) toPeers:<#(NSArray *)#> withDataMode:GKSendDataUnreliable error:nil];// GKSendDataUnreliable 不可靠的传输方式:1。快、2.可能会丢包、3.传递的信息不一定完整// GKSendDataReliable 可靠的传输方式:1.慢、2.不会丢包、3.直到传完为止BOOL sendSate = [self.session sendDataToAllPeers:UIImagePNGRepresentation(self.icon.image) withDataMode:GKSendDataUnreliable error:nil];}
// 建立连接
- (IBAction)build:(id)sender {GKPeerPickerController *ppc = [[GKPeerPickerController alloc] init];ppc.delegate = self;[ppc show];
}/**已经成功连接到某个设备,并且开启了连接会话@param picker 搜索框@param peerID 设备ID@param session 连接会话:通过会话可以进行数据传输*/
- (void)peerPickerController:(GKPeerPickerController *)picker didConnectPeer:(NSString *)peerID toSession:(GKSession *)session {[picker dismiss];// 标记会话self.session = session;// 设置接收数据// 设置完接收者之后,接收数据会触发 SEL = -receiveData:fromPeer:inSession:context:[self.session setDataReceiveHandler:self withContext:nil];
}/**蓝牙设备接收到数据时就会调用@param data 数据@param peer 来自哪个设备@param session 连接会话*/
- (void)receiveData:(NSData *)data fromPeer:(NSString *)peer inSession:(GKSession *)session context:(void*)context {// 显示在屏幕self.icon.image = [UIImage imageWithData:data];// 存入相册UIImageWriteToSavedPhotosAlbum(self.icon.image, nil, nil, nil);
}@end

转载于:https://my.oschina.net/gwlCode/blog/988704

iOS开发 BLE 蓝牙4.0相关推荐

  1. iOS开发之蓝牙4.0技术完美实现

      CSDN博客   BaiHuaXiu123  博客专家 iOS开发之蓝牙4.0技术完美实现 发表于2016/5/1 21:13:06  8034人阅读 前言 前端时间,同学在做项目过程中遇到 ...

  2. iOS开发之蓝牙4.0开发使用

    转载自https://www.jianshu.com/p/f0e4b0e98336 2015年的时候自己写过一个蓝牙4.0项目,当忘了写博客,最近看到这篇博客写的挺详细,所以转载一下 一: 介绍 蓝牙 ...

  3. 谈谈几个月以来开发android蓝牙4.0 BLE低功耗应用的感受

    谈谈几个月以来开发android蓝牙4.0 BLE低功耗应用的感受 谈谈几个月以来开发android蓝牙4.0 BLE低功耗应用的感受,注明下时间:2012-10-17写的博客,后期更新的也注明了时间 ...

  4. 开发android蓝牙4.0 BLE低功耗应用的感受

    文章转自: http://www.cnblogs.com/zdz8207/archive/2012/10/17/bluetooth_ble_android.html 谈谈几个月以来开发android蓝 ...

  5. IOS学习之蓝牙4.0 BLE

    转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/26740237 作者:小马 IOS学习也一段时间了,该上点干货了.前段时间研究了一下 ...

  6. Android BLE蓝牙4.0开发 实现扫描、连接、通讯、获取通知、特性等 (一、打开蓝牙 进行扫描)

    目录 首先说下蓝牙4.0 目前android蓝牙有2种: ble蓝牙开发流程: 1.首先当然是进行权限申请啦: 2.获取蓝牙适配器 BluetoothAdapter 3.打开蓝牙 4.关闭蓝牙 5.在 ...

  7. Android BLE蓝牙4.0开发详解

    这篇博客主要讲解 蓝牙 BLE 的用法.在讲解之前先讲一些概念性的东西,对于之前没接触过蓝牙开发,现在手上又有个蓝牙BLE项目需要做的人,先看下这些概念还是很重要的.因为我之前就是这样,之前没有接触过 ...

  8. IOS学习之蓝牙4.0

    转载请注明出处 作者:小马 IOS学习也一段时间了,该上点干货了.前段时间研究了一下IOS蓝牙通讯相关的东西,把研究的一个成果给大家分享一下. 一 项目背景 简单介绍一下做的东西,设备是一个金融刷卡器 ...

  9. 物联网专题--基于APP Inventor的BLE蓝牙4.0数据通信

    本文原文为本人新浪博客:http://blog.sina.com.cn/s/blog_12f79c9b90102wbde.html 本科毕业设计要用到蓝牙4.0(芯片选用TI公司的CC254x系列)与 ...

最新文章

  1. 【赠书】金融领域可解释机器学习模型与实践
  2. mongodb+java_Java EE + MongoDb与Apache TomEE和Jongo Starter项目
  3. 又论社区风气, 与程序员是干嘛地的.
  4. 产品经理和程序员之间的“潜台词”,你能听懂多少?
  5. renameTo()方法的用法
  6. 【SQL练习题】排序
  7. 无法扩展该卷 因为群集的数量将超过文件系统_Ubifs文件系统分析
  8. AVL树---最简单的实现
  9. 拓端tecdat|使用Python和SAS Viya分析社交网络
  10. 时空知识图谱应用初探
  11. 2021-07-07 Day01 前端基础第一天
  12. 获取文件夹下的文件,包含子文件夹并复制文件
  13. libxml使用实例
  14. 高通平台开发系列讲解(系统篇)coredump
  15. 苹果新专利:用AR眼镜来控制iPhone屏幕输出,保护隐私
  16. 【Android应用】 苏州实时公交
  17. 判断一个点是否在多边形内部
  18. 关于linux磁盘爆满定位大文件的方法
  19. 经典算法——筛选法求素数(素数筛选)
  20. 电场和磁场在交界面上的连续性

热门文章

  1. log4j显示hibernate sql参数的配置
  2. linux安装 ”NTFS“ 文件系统
  3. spring中配置properties资源文件
  4. Forrester:全球供应商在中国处于领导地位 但本土供应商却在私有云市场蒸蒸日上...
  5. 太多选择——企业如何选择合适的BI工具?
  6. webservice(二)简单实例
  7. 【听课笔记】国立交通大学《如何成功投稿国际科学期刊》 投稿准备+审稿流程剖析...
  8. 那些年php编程犯过的错(1) -- 字符串相等
  9. 13 个mod_rewrite 应用举例
  10. Discuz! member.php xss bug