蓝牙(1)淘汰的框架

1.GameKit.framework(用法简单):没有进度条,因此传比较少的可以,大点的还是算了吧,多用于五子棋等小的游戏,老得

 

 实例:a手机图片传到b手机

 

 1-1.首先要创建一个显示图片的imageView;

 UIImageView *imageV;

 1-2.创建三个按钮分别是链接蓝牙、选择图片、发送数据

 选在图片

 第一步:创建图片选择控制器

 UIImagePickerController *imagePk = [[UIImagePickerController alloc]init];

 第二步:判断图库是否可以打开

 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum]) {

 第三步:设置打开图库的类型

 imagePk.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;

 第四步:必须要实现两个代理方法

 imagePk.delegate = self;

 第五步:打开图片选择控制器,选择图片

 [self presentViewController:imagePk animated:YES completion:nil];

 代理方法:UINavigationControllerDelegate,UIImagePickerControllerDelegate

 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{

 

 NSLog(@"%@",info);

 imageV.image = info[UIImagePickerControllerOriginalImage];

 }

 链接蓝牙

 第一步.创建选择其他蓝牙设备的控制器

 GKPeerPickerController *peek = [[GKPeerPickerController alloc]init];

 第二步.成为改控制器的代理]

 peek.delegate = self;

 第三步.显示蓝牙控制器GKPeerPickerControllerDelegate

 [peek show];

 实现如下方法

 当蓝牙设备连接成功调用,picker触发事件控制器,peerID连接蓝牙设备的idsesson连接蓝牙的绘话,只要拿到session就可以就可以传输数据

 - (void)peerPickerController:(GKPeerPickerController *)picker didConnectPeer:(NSString *)peerID toSession:(GKSession *)session{

 NSLog(@"----%@",peerID);

 1.保存绘画

 session = session;

 //设置监听接受传递过来的数据

 //Handler:谁来处理接受到的数据

 // withContext传递数据

 [session setDataReceiveHandler:self withContext:nil];

 2.关闭显示蓝牙设备控制器

 [picker dismiss];

 }

 在接受时必须要调用的方法,否则不知如何调用

 data:传递过来的数据

 peer:传递数据设备的id

 session:会话

 context:注册监听时传递的数据

- (void) receiveData:(NSData *)data fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context{

    NSLog(@"%s",__func__);

}

- (void)peerPickerControllerDidCancel:(GKPeerPickerController *)picker{

 

}

发送数据

 1.取出图片,转化为二进制,下面的是安全的模式

 NSData *data = UIImagePNGRepresentation(imageV.image);

 data就是需要发送的数据.DataReliable:是否安全的发送数据,error是否监听

 [session sendDataToAllPeers:data withDataMode:GKSendDataReliable error:nil];


你可能感兴趣的:(蓝牙)