API Bluetooth in Windows / .Net?

Sono in procinto di scrivere uno scanner Bluetooth che localizza e identifica i dispositivi mobili nelle vicinanze. È qualcosa che posso realizzare usando C #, o devo passare alle API C / C ++? La mia applicazione è rivolta a Windows XP e Vista. I puntatori sono apprezzati.

Grazie!

Un problema con Bluetooth sul PC è che ci sono diversi stack BT in uso e non si può mai sapere quale sia disponibile su una determinata macchina. I più comuni sono Widcomm (ora Broadcom) e Microsoft (apparso in XP, forse uno dei service pack). Tuttavia, alcuni fornitori di hardware BT offrono BlueSoleil e altri usano Toshiba. La maggior parte dei dongle funzionerà con lo stack MS, quindi le librerie .NET che ho visto tendono ad usarlo.

Ciascuno degli stack ha un modo totalmente diverso di eseguire la parte di scoperta in cui si esplorano i dispositivi vicini e si informano sui loro servizi.

Se dovessi scegliere un approccio oggi probabilmente farei la scoperta in C ++ e aggiungere un’interfaccia per .NET.

La roba di 32feet.net ha funzionato abbastanza bene quando l’ho provata, ma non supportava lo stack di Widcomm.

C’è anche il 32feet.net di Peter Foot

http://inthehand.com/content/32feet.aspx

Ho giocato con questo indietro quando era v1.5 e ha funzionato bene.

Mike Petrichenko ha una bella struttura BT. Funziona con BlueSoleil, Widcomm, Toshiba e Microsoft.

Ora è chiamato Wireless Communications Library e funziona con Bluetooth 802.11 e Infrarossi. Mike ha chiamato la società Soft Service Company e vende licenze non commerciali e commerciali con e senza codice sorgente a prezzi compresi tra $ 100 e $ 2050.

Le uniche API BlueTooth gestite che potrei trovare riferimento sono qui .

Il modo migliore per conoscere i dispositivi Bluetooth e inviare file al dispositivo bluetooth dal PC è usare quel codice.

public void ExecuteCommandSync(object command) { try { // create the ProcessStartInfo using "cmd" as the program to be run, // and "/c " as the parameters. // Incidentally, /c tells cmd that we want it to execute the command that follows, // and then exit. System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command); // The following commands are needed to redirect the standard output. // This means that it will be redirected to the Process.StandardOutput StreamReader. procStartInfo.RedirectStandardOutput = true; procStartInfo.UseShellExecute = false; // Do not create the black window. procStartInfo.CreateNoWindow = true; // Now we create a process, assign its ProcessStartInfo and start it System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo = procStartInfo; proc.Start(); // Get the output into a string string result = proc.StandardOutput.ReadToEnd(); // Display the command output. Console.WriteLine(result); } catch (Exception objException) { // Log the exception MessageBox.Show(objException.Message); } } 

Puoi chiamare questo metodo come

  string command = "fsquirt"; ExecuteCommandSync(command); 

Quindi, viene visualizzato BluetoothFileTransferWizard e puoi scegliere il dispositivo disponibile e inviare il file per inviare quel dispositivo. Se non vuoi usare in questo modo, prova 32feet.net.uk. È stato fantastico per lo sviluppo Bluetooth per C # e VB.NET.