//
// ViewController.m
// 070803blueclient
//
// Created by tianshangrenjian on 15/7/8.
// Copyright © 2015年 tianshangrenjian. All rights reserved.
//
#import "ViewController.h"
#import <MultipeerConnectivity/MultipeerConnectivity.h>
@interface ViewController ()<MCSessionDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate,MCBrowserViewControllerDelegate>
@property (weak, nonatomic) IBOutlet UIImageView *imgView;
@property (strong,nonatomic) MCSession *session;
@property (strong,nonatomic) UIImagePickerController *imgPc;
@property (strong,nonatomic) MCBrowserViewController *browser;
- (IBAction)btnFind:(id)sender;
- (IBAction)btnSelect:(id)sender;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
MCPeerID *peer=[[MCPeerID alloc] initWithDisplayName:@"sch-client"];
MCSession *session=[[MCSession alloc] initWithPeer:peer];
session.delegate=self;
self.session=session;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)btnFind:(id)sender {
MCBrowserViewController *browser=[[MCBrowserViewController alloc] initWithServiceType:@"sch-server" session:self.session];
self.browser=browser;
browser.delegate=self;
[self presentViewController:browser animated:YES completion:nil];
}
- (void)browserViewControllerDidFinish:(nonnull MCBrowserViewController *)browserViewController
{
NSLog(@"select finded!");
[browserViewController dismissViewControllerAnimated:YES completion:nil];
}
- (void)browserViewControllerWasCancelled:(nonnull MCBrowserViewController *)browserViewController
{
NSLog(@"cancel select");
[browserViewController dismissViewControllerAnimated:YES completion:nil];
}
- (IBAction)btnSelect:(id)sender {
UIImagePickerController *iPc=[[UIImagePickerController alloc] init];
self.imgPc=iPc;
self.imgPc.delegate=self;
[self presentViewController:self.imgPc animated:YES completion:nil];
}
- (void)imagePickerController:(nonnull UIImagePickerController *)picker didFinishPickingMediaWithInfo:(nonnull NSDictionary<NSString *,id> *)info
{
UIImage *img=info[UIImagePickerControllerOriginalImage];
self.imgView.image=img;
NSData *data=UIImagePNGRepresentation(img);
[self.session sendData:data toPeers:[self.session connectedPeers] withMode:MCSessionSendDataUnreliable error:nil];
NSLog(@"begin send img...");
[picker dismissViewControllerAnimated:YES completion:nil];
}
- (void)imagePickerControllerDidCancel:(nonnull UIImagePickerController *)picker
{
[picker dismissViewControllerAnimated:YES completion:nil];
}
// Remote peer changed state.
- (void)session:(MCSession *)session peer:(MCPeerID *)peerID didChangeState:(MCSessionState)state
{
switch (state) {
case MCSessionStateConnecting:
NSLog(@"connectiing!");
break;
case MCSessionStateConnected:
NSLog(@"connected!");
default:
break;
}
}
// Received data from remote peer.
- (void)session:(MCSession *)session didReceiveData:(NSData *)data fromPeer:(MCPeerID *)peerID
{
NSLog(@"receive data");
UIImage *img=[UIImage imageWithData:data];
self.imgView.image=img;
}
// Received a byte stream from remote peer.
- (void) session:(MCSession *)session
didReceiveStream:(NSInputStream *)stream
withName:(NSString *)streamName
fromPeer:(MCPeerID *)peerID
{
}
// Start receiving a resource from remote peer.
- (void) session:(MCSession *)session
didStartReceivingResourceWithName:(NSString *)resourceName
fromPeer:(MCPeerID *)peerID
withProgress:(NSProgress *)progress
{
}
// Finished receiving a resource from remote peer and saved the content
// in a temporary location - the app is responsible for moving the file
// to a permanent location within its sandbox.
- (void) session:(MCSession *)session
didFinishReceivingResourceWithName:(NSString *)resourceName
fromPeer:(MCPeerID *)peerID
atURL:(NSURL *)localURL
withError:(NSError *)error
{
}
@end