API Bluetooth w Windows/. Net?

Jestem w trakcie pisania skanera Bluetooth, który lokalizuje i identyfikuje urządzenia mobilne w pobliżu. Czy jest to coś, co mogę osiągnąć za pomocą C#, Czy muszę spadać do C / C++ API? Moja aplikacja jest ukierunkowana na Windows XP i Vista. Wskazówki są mile widziane.

Dzięki!

Author: cjkarr, 2008-09-28

5 answers

Jeden problem z Bluetooth na PC jest to, że istnieje kilka stosów BT w użyciu i nigdy nie można dokładnie wiedzieć, który z nich jest dostępny na danym komputerze. Najczęściej spotykane są Widcomm (obecnie Broadcom) I Microsoft (pojawił się w XP, być może jeden z service Pack). Jednak niektórzy dostawcy sprzętu BT pakują BlueSoleil, a niektórzy używają Toshiby. Większość kluczy sprzętowych będzie działać ze stosem MS, więc biblioteki. NET, które widziałem, mają tendencję do tego.

Każdy ze stosów ma zupełnie inny sposób działania część discovery, w której przeglądasz pobliskie urządzenia i pytasz o ich usługi.

Gdybym miał dziś wybrać jedno podejście, prawdopodobnie zrobiłbym discovery w C++ i dodał interfejs dla. NET.

The 32feet.net rzeczy działały całkiem dobrze, gdy próbowałem, ale nie obsługiwały stosu Widcomm.

 25
Author: Andrew Queisser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-28 02:08:48

Jest też Piotr Stopa 32feet.net

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

Bawiłem się z tym, kiedy był v1. 5 i działało dobrze.

 15
Author: Kyle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-28 01:01:01

Mike Petriczenko ma ładny framework BT. Współpracuje z BlueSoleil, Widcomm, Toshiba i Microsoft.

Nazywa się teraz biblioteką komunikacji bezprzewodowej i współpracuje z Bluetooth 802.11 i podczerwienią. Mike nazwał firmę Soft Service Company i sprzedaje niekomercyjne i komercyjne licencje z kodem źródłowym i bez niego w cenach od $100 do $2050.

 7
Author: Guge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-13 01:37:30

Jedyne zarządzane interfejsy API BlueTooth, do których mogłem znaleźć odniesienie, to tutaj.

 3
Author: Erik Forbes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-28 00:53:11

Najlepszym sposobem na poznanie urządzeń bluetooth i wysłanie pliku do urządzenia bluetooth z komputera jest użycie tego kodu.

    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);
        }
    }

Możesz wywołać tę metodę jako

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

Tak więc pojawi się BluetoothFileTransferWizard i możesz wybrać dostępne urządzenie i wysłać plik do wysłania tego urządzenia. Jeśli nie chcesz tego używać, spróbuj 32feet.net.uk. to było świetne dla rozwoju bluetooth dla C # i VB.NET.

 -9
Author: AT07,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-16 07:21:44