4

私は現在、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#のWindowsMo​​bile CEでBluetoothのオンオフを自動的に設定できるプロセスSystem.Digonostics; dll )はありますか

試してみましたが、取得できなかったので、誰かがこれを手伝ってくれたり、Bluetooth接続用のdllファイルを提案したりできます.

ありがとう

4

2 に答える 2

3

これが役立つ場合があります。

C# を使用した Bluetooth デバイスの開発

Bluetooth テクノロジ用の Windows Embedded Source Tools のダウンロードは次の場所にあります。

ダウンロード

お役に立てれば :)

于 2015-02-16T15:28:16.243 に答える
1

あなたが使用しているライブラリが何であるかは完全にはわかりません。そのため、なぜそのエラーが発生するのか正確にはわかりません。

デバイスで Bluetooth 接続モードを設定する方法に関する MSFT のドキュメントを次に示します。これらの DLL を使用できる場合は、運が良いかもしれません。

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

于 2015-02-19T16:52:18.567 に答える