zoukankan      html  css  js  c++  java
  • iphone:蓝牙传输

    使用的是GameKit的框架

    遵循协议:<GKPeerPickerControllerDelegate,GKSessionDelegate>

    @property (strong, nonatomic) GKSession *currentSession;

    @property (strong, nonatomic) GKPeerPickerController *picker;

    连接时

        picker =[[GKPeerPickerController alloc] init];
        picker.delegate = self;
        picker.connectionTypesMask = GKPeerPickerConnectionTypeNearby;//设置成蓝牙的选择(另外一种是ONline的)    
        [picker show];

    断开连接

        [self.currentSession disconnectFromAllPeers];
        currentSession = nil;

    发送

        NSData *data;
        NSString *str = [NSString stringWithString:textField.text];
        data = [str dataUsingEncoding:NSASCIIStringEncoding];
        
        if (currentSession) {
            [self.currentSession sendDataToAllPeers:data withDataMode:GKSendDataReliable error:nil];
        }

    委托方法:

    #pragma mark  - Delegate
    //设备连接时
    - (void) peerPickerController:(GKPeerPickerController *)picker didConnectPeer:(NSString *)peerID toSession:(GKSession *)session{
        self.currentSession =session;//取得session对象
        session.delegate = self;
        [session setDataReceiveHandler:self withContext:nil];
        picker.delegate = nil;
        [picker dismiss];
    }
    //取消蓝牙选择器
    -(void) peerPickerControllerDidCancel:(GKPeerPickerController *)picker{
        picker.delegate = nil;
    }
    //设备断开连接
    - (void) session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)state{
        switch (state) {
            case GKPeerStateConnected:
                NSLog(@"connected");
                break;
            case GKPeerStateDisconnected:
                NSLog(@"disconnected");
                currentSession = nil;
            default:
                break;
        }
    }
    //接受数据
    - (void) receiveData:(NSData *)data fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context
    {
        NSString *str;
        str = [[NSString alloc]initWithData:data encoding:NSASCIIStringEncoding];
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Data received" message:str delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
        [alert show];
    }

     

       


    作者:老Zhan
    出处:http://www.cnblogs.com/mybkn/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

     
  • 相关阅读:
    System.Windows.Forms.Timer与System.Timers.Timer的区别(zz)
    30个最常用css选择器解析(zz)
    Highcharts选项配置详细说明文档(zz)
    CSS For Bar Graphs(maybe old)
    学习CSS3BUTTON(二)
    学习CSS3BUTTON(一)
    CSS CURSOR属性
    CSS3的文字阴影—text-shadow
    display:inline-block; 到底是个啥玩意?
    mysql 子查询
  • 原文地址:https://www.cnblogs.com/mybkn/p/2631370.html
Copyright © 2011-2022 走看看