如何使用C#启用和禁用蓝牙

时间:2015-02-10 12:27:40

标签: c# visual-studio-2008 bluetooth windows-ce smart-device-framework

我目前正致力于蓝牙激活(在Windows CE版本6中自动执行某项操作后启用和禁用蓝牙
我使用 SmartDeviceFramework 即CAB文件,然后将其安装在Windows CE中

以下是我使用的方法 ( InTheHand.Net.Personal.dll 蓝牙文件):

  private static void setBluetoothConnection()
    {
     try
       {
           if (BluetoothRadio.IsSupported == true)
           {
               MessageBox.Show("Bluetooth Supported", "Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
               BluetoothRadio radio = BluetoothRadio.PrimaryRadio;
               MessageBox.Show(radio.Mode.ToString(), "Before Bluetooth Connection", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
               radio.Mode = RadioMode.Discoverable;
               // here radio.Mode works only if the Windows Device has Bluetooth enabled otherwise gives error
               MessageBox.Show(radio.Mode.ToString(), "RadioMode Discover", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
               bluetoothClient = new BluetoothClient();
               //Cursor.Current = Cursors.WaitCursor;
               BluetoothDeviceInfo[] bluetoothDeviceInfo = bluetoothClient.DiscoverDevices();
               MessageBox.Show(bluetoothDeviceInfo.Length.ToString(), "Device Name", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
               foreach(BluetoothDeviceInfo device in bluetoothDeviceInfo)
               {
                 Cursor.Current = Cursors.Default;
                 MessageBox.Show(device.DeviceName, "Device Name", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                 bluetoothClient.Connect(new BluetoothEndPoint(device.DeviceAddress, service));
                 MessageBox.Show("Bluetooth Connected...", "Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                 break;
               }
             }
          else
          {
               MessageBox.Show("Bluetooth Not Supported", "Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
          }
       }
        catch (Exception ex)
        {
           log.Error("[Bluetooth] Connection failed", ex);
           MessageBox.Show(ex.Message,"Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
        }
    }

所以我在这里面临错误:

BluetoothRadio radio = BluetoothRadio.PrimaryRadio;
radio.Mode = RadioMode.Discoverable; // gives error here 

错误

Error setting BluetoothRadio.Mode

在设备中禁用蓝牙并执行上述行并关闭应用程序时,上述错误发生一次 但是当应用程序关闭时,当我使用移动设备中的蓝牙管理器时,蓝牙已启用

我的问题

  

我必须单击一个按钮2次才能启用按钮(第1个时为   应用程序关闭时出错(但蓝牙设置为ON)和第二个   搜索范围内的设备而不是单击一次。

我的假设

  

我认为程序尝试时可能存在一些安全问题   使蓝牙从移动设备从关闭到可发现。

还有进程 System.Digonostics; dll ),我可以通过它设置蓝牙开启关闭< / strong>自动在C#

中的 WindowsMo​​bile CE

我试过但没有得到它,所以任何人都可以帮我这个或建议任何 dll 文件进行蓝牙连接。

由于

2 个答案:

答案 0 :(得分:3)

您可能会觉得这很有用:

Bluetooth Device Development using C#

以及用于蓝牙技术的Windows Embedded Source Tools的下载:

Download

希望这会有所帮助:)

答案 1 :(得分:1)

我不完全确定你使用的是什么库,所以我不确定它为什么会给你这个错误。

以下是关于如何在设备上设置蓝牙连接模式的MSFT文档。如果你可以使用这些DLL,你可能会有一些运气。

https://msdn.microsoft.com/en-us/library/bb416244.aspx