我目前正在处理蓝牙激活(只需在 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 次才能启用按钮(第一次是应用程序因错误关闭(但蓝牙设置为 ON)时,第二次是搜索范围内的设备)而不是单击 1 次。
我的假设
我认为当程序尝试将蓝牙从移动启用从关闭到可发现时,可能存在一些安全问题。
那么是否有任何进程(System.Digonostics; dll )我可以通过它在 C#中的WindowsMobile CE中自动设置蓝牙打开和关闭
我试过但没有得到它,所以任何人都可以帮助我或建议任何用于蓝牙连接的dll文件。
谢谢