2013-05-15 2 views
1

я хочу, чтобы автоматически обнаруживать все устройства вокруг моего компьютера и отправить файл на нихотправить файл через Bluetooth в C# приложения

я использую brecham и inthehand библиотеки DLL,

здесь мои коды:

 BluetoothClient bc = new BluetoothClient(); 
     BluetoothDeviceInfo[] info = null; 
     info = bc.DiscoverDevices(999); 
     foreach (BluetoothDeviceInfo device in info) 
     { 
      lstDevices.Items.Add(device.DeviceName + device.DeviceAddress); 
      device.Update(); 
      device.Refresh(); 
      device.SetServiceState(BluetoothService.ObexObjectPush, true); 

      if (!device.Authenticated) 
      { 
       // Use pin "0000" for authentication 
       if (!BluetoothSecurity.PairRequest(device.DeviceAddress, "0000")){ 
        MessageBox.Show("Request failed"); 
       } 

      } 

      var file = @"C:\1.jpg"; 
      var uri = new Uri("obex://" + info[1].DeviceAddress + "/" + file); 
      var request = new ObexWebRequest(uri); 
      request.ReadFile(file); 
      var response = (ObexWebResponse)request.GetResponse(); 
      MessageBox.Show(response.StatusCode.ToString()); 
      //check response.StatusCode 
      response.Close(); 
     } 

но я получаю сообщение «Request Failed!» , пожалуйста, кто-нибудь может меня исправить?

У кого-нибудь есть идея?

ответ

2

решена проблема с небольшим изменением Кодекса:

 if (!BluetoothRadio.IsSupported) 
      MessageBox.Show("No Bluetooth device detected."); 
     if (BluetoothRadio.PrimaryRadio.Mode == RadioMode.PowerOff) 
      BluetoothRadio.PrimaryRadio.Mode = RadioMode.Connectable; 
     MessageBox.Show(BluetoothRadio.PrimaryRadio.Name.ToString()); 
     MessageBox.Show(BluetoothRadio.PrimaryRadio.Mode.ToString()); 
     BluetoothClient bc = new BluetoothClient(); 
     BluetoothDeviceInfo[] info = null; 
     info = bc.DiscoverDevices(999); 
     foreach (BluetoothDeviceInfo device in info) 
     { 
      lstDevices.Items.Add(device.DeviceName + " - " + device.DeviceAddress); 
      device.Update(); 
      device.Refresh(); 
      device.SetServiceState(BluetoothService.ObexObjectPush, true); 
      if (!device.Authenticated){ 
       // Use pin "0000" for authentication 
       if (!BluetoothSecurity.PairRequest(device.DeviceAddress, "0000")){ 
        MessageBox.Show("Request failed"); 
       } 
      } 
      var file = @"d:\1.jpg"; 
      var uri = new Uri("obex://" + device.DeviceAddress + "/" + file); 
      var request = new ObexWebRequest(uri); 
      request.ReadFile(file); 
      var response = (ObexWebResponse)request.GetResponse(); 
      MessageBox.Show(response.StatusCode.ToString()); 
      // check response.StatusCode 
      response.Close(); 
     } 

надеюсь, что это будет полезно для вас, и все, что нужно это :)

+0

Спасибо за такой хороший кусок кода! Я просто хочу добавить, что вам нужно установить библиотеку 32feet.NET из Nuget - она ​​добавит к проекту существенный InTheHand.Net.Personal.dll. – CatCap

+0

Спасибо ... Его работа для меня .... tooooo –

Смежные вопросы