2016-09-30 133 views
0

我們正在創建的應用程序COMMUNICAT與Windows PC外部設備(在這裏我們使用的是Windows 7),在PC,我們正在使用藍牙適配器。在32Feet窗口BluetoothListener.AcceptBluetooth客戶端塊7

,當我們試圖發現和配對設備是在Windows PC全成。

但在代碼方面,我們正在試圖連接它不是全成設備,在這裏我們使用32feet.net連接設備。

下面的代碼我試圖連接設備。

////_serviceClassId = new Guid("9bde4762-89a6-418e-bacf-fcd82f1e0677"); 
     Guid serviceClass = BluetoothService.RFCommProtocol; 
     int selectedIndex = device_list.SelectedIndex; 
     BluetoothDeviceInfo selectedDevice = this.array[selectedIndex]; 
     var lsnr = new BluetoothListener(serviceClass); 
     lsnr.Start(); 
     Task.Run(() => Listener(lsnr)); 

與收聽方法是

private void Listener(BluetoothListener lsnr) 
    { 
     try 
     { 
      while (true) 
      { 
       using (var client = lsnr.AcceptBluetoothClient()) 
       { 
        using (var streamReader = new StreamReader(client.GetStream())) 
        { 
         try 
         { 
          var content = streamReader.ReadToEnd(); 
          if (!string.IsNullOrEmpty(content)) 
          { 
           ////_responseAction(content); 
          } 
         } 
         catch (IOException) 
         { 
          client.Close(); 
          break; 
         } 
        } 
       } 
      } 
     } 
     catch (Exception exception) 
     { 
      // todo handle the exception 
      // for the sample it will be ignored 
     } 
    } 

如果我運行會受阻於lsnr.AcceptBluetoothClient()任何一個可以幫助錯在這是何種應用?

注:藍牙設備創建了兩個相稱一個是輸入和花葯一個是輸出端口,當我們通過PC連接。

回答

0

這是因爲它等待直到它有一個客戶端連接。你必須在一個線程中同時運行它!