蓝牙通信,通过蓝牙传照片
为什么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
蓝牙通信,通过蓝牙传照片相关推荐
- Android -传统蓝牙通信聊天
概述 Android 传统蓝牙的使用,包括开关蓝牙.搜索设备.蓝牙连接.通信等. 详细 代码下载:http://www.demodashi.com/demo/10676.html 原文地址: Andr ...
- android pin码 经典蓝牙_Android蓝牙开发—经典蓝牙详细开发流程
Android蓝牙开发-经典蓝牙详细开发流程 发布时间:2018-07-16 13:41, 浏览次数:637 , 标签: Android Android蓝牙开发前,首先要区分是经典蓝牙开发还是BLE( ...
- Android笔记---蓝牙开发经典蓝牙和低功耗蓝牙
目录 前言 一般开发步骤 相关API介绍 一.通用API 1.BluetoothAdapter 2.BluetoothDevice 二.经典蓝牙(BT)API 1.BluetoothSocket 2. ...
- android 输出字节数组,Android蓝牙通信字节数组的数据类型转换 求教!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 单片机和安卓手机进行蓝牙通信,发送电压数据到手机,恰好每次8位数据(1字节)传给上位机.采用以下代码获得16进制字符输出,以下是蓝牙通信接收并显示数据部分 ...
- Qt on Android 蓝牙通信开发
版权声明:本文为MULTIBEANS ORG研发跟随文章,未经MLT ORG允许不得转载. 最近做项目,需要开发安卓应用,实现串口的收发,目测CH340G在安卓手机上非常麻烦,而且驱动都是Java版本 ...
- Android硬件通信之 蓝牙通信
一,简介 1.1 现在的手机设备基本上都支持蓝牙模块,蓝牙与蓝牙之前可以相互通信,所以只要物联网机器上配有蓝牙模块,就可以用手机蓝牙连接机器蓝牙,从而和机器通信 1.2 蓝牙按协议常见可以分为经典蓝牙 ...
- React Native BLE蓝牙通信
由于项目需要,基于React Native 开发的App要跟BLE蓝牙设备通信. 在js.coach上搜索React Native BLE蓝牙组件,只找到三个组件: react-native-ble- ...
- 基于STM32F103C8T6的HC-06蓝牙通信
文章目录 前言 注意看 ! 一.蓝牙通信流程 二.怎么实现蓝牙通信 1.了解蓝牙模块功能 2.了解蓝牙通信本质 3.进行AT命令调试 4.调试完成,连接通信 三.结尾 前言 注意看 ! 如果朋友们遇到 ...
- STM32CubeIDE开发(二十五), 物联网应用之stm32的蓝牙通信设计
一.蓝牙通信技术 蓝牙技术是一种点对点点对面的网络构架,他可以在限制的范围内以很快的速度传输网络数据,在物联网应用中,支持网状网络的物联网短距离无线通信.目前它还被广泛用于智能可穿戴设备.智能门锁.智 ...
最新文章
- 磁盘阵列RAID的分类有哪些?
- KMP字符串搜索算法
- boost::sort模块实现测试并行稳定排序
- 【MFC系列-第23天】CMemoryDC的封装过程
- Python机器学习:评价分类结果006precisoion-Recall曲线绘制
- 理财里的封闭和半开放是啥意思?
- [NOIp2012]开车旅行
- Apache服务器+tomcat配置
- 一段关于中国人口老龄化的评论
- Linux花生壳使用篇
- img文件制作linux启动u盘,用syslinux制作简单U盘启动盘教程
- python反爬虫策略ppt_关于反爬虫策略
- 中线提取算法_基于Guided Filter的地形图中线要素提取算法
- html5 css3在线工具,HTML5/CSS3开发辅助工具(TopStyle)
- 基于51单片机的自动浇花系统
- Matlab-稀疏矩阵
- onTouch事件机制
- 每日一面 - mysql中,innodb表里,某一条数据删除了之后,这条数据会被真实的擦掉吗,还是删除了关系?
- 5G新基建打造数字社会新图景
- 三种扫描局域网ip方案