私は現在、Bluetoothのアクティベーションに取り組んでいます(Windows CEバージョン6から自動的に特定の操作の後にBluetoothを有効および無効にするだけです)
私はSmartDeviceFramework ie CABファイルを使用しており、それをWindows CEにインストールします
以下は、私が使用した方法です( Bluetooth用の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
上記のエラーは、デバイスで Bluetooth が無効になっているときに1 回
発生し、上記の行が実行さ
れてアプリケーションが閉じられますが、アプリケーションが閉じられ、モバイルで Bluetooth マネージャーに移動すると、Bluetooth が有効になります。
私の問題:
1回のクリックではなく、ボタンを2回クリックしてボタンを有効にする必要があります(1回目はアプリケーションがエラーで閉じたとき(ただしBluetoothがオンに設定されている)、2回目は範囲内のデバイスを検索するため)。
私の仮定
プログラムがモバイルからBluetoothをオフから検出可能にしようとすると、セキュリティ上の問題が発生する可能性があると思います。
C#のWindowsMobile CEでBluetoothのオンとオフを自動的に設定できるプロセス(System.Digonostics; dll )はありますか
試してみましたが、取得できなかったので、誰かがこれを手伝ってくれたり、Bluetooth接続用のdllファイルを提案したりできます.
ありがとう