我目前正致力于蓝牙激活(在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#
中的 WindowsMobile CE 中我试过但没有得到它,所以任何人都可以帮我这个或建议任何 dll 文件进行蓝牙连接。
由于
答案 0 :(得分:3)
您可能会觉得这很有用:
Bluetooth Device Development using C#
以及用于蓝牙技术的Windows Embedded Source Tools的下载:
希望这会有所帮助:)
答案 1 :(得分:1)
我不完全确定你使用的是什么库,所以我不确定它为什么会给你这个错误。
以下是关于如何在设备上设置蓝牙连接模式的MSFT文档。如果你可以使用这些DLL,你可能会有一些运气。