API-интерфейсы Bluetooth в Windows / .Net? - PullRequest
32 голосов
/ 28 сентября 2008

Я нахожусь в процессе написания сканера Bluetooth, который находит и идентифицирует мобильные устройства в окрестностях. Это то, что я могу сделать с помощью C #, или мне нужно раскрыться в API C / C ++? Мое приложение ориентировано на Windows XP и Vista. Указатели приветствуются.

Спасибо!

Ответы [ 4 ]

25 голосов
/ 28 сентября 2008

Одна проблема с Bluetooth на ПК состоит в том, что используется несколько стеков BT, и вы никогда не можете точно знать, какой из них доступен на данном компьютере. Наиболее распространенными из них являются Widcomm (теперь Broadcom) и Microsoft (появился в XP, возможно, один из пакетов обновления). Тем не менее, некоторые производители оборудования BT поставляют BlueSoleil, а некоторые используют Toshiba. Большинство ключей будут работать со стеком MS, поэтому библиотеки .NET, которые я видел, обычно используют это.

Каждый из стеков имеет совершенно разные способы выполнения части обнаружения, когда вы просматриваете близлежащие устройства и запрашиваете их услуги.

Если бы мне сегодня пришлось выбрать один подход, я, вероятно, сделал бы открытие в C ++ и добавил бы интерфейс для .NET.

Материал 32feet.net работал довольно хорошо, когда я попробовал, но не поддерживал стек Widcomm.

15 голосов
/ 28 сентября 2008

Есть также Питер Фут 32feet.net

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

Я играл с этим, когда он был v1.5, и он работал хорошо.

7 голосов
/ 20 ноября 2008

Майк Петриченко имеет приятный каркас BT. Он работает с BlueSoleil, Widcomm, Toshiba и Microsoft.

Теперь она называется библиотекой беспроводной связи и работает с Bluetooth 802.11 и ИК-порт. Майк назвал компанию Soft Service Company и продает некоммерческие и коммерческие лицензии с исходным кодом и без него по ценам от 100 до 2050 долларов.

0 голосов
/ 16 марта 2012

Лучший способ узнать устройства Bluetooth и отправить файл на устройство Bluetooth с вашего ПК - использовать этот код.

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

Вы можете вызвать этот метод как

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

Итак, BluetoothFileTransferWizard появляется, и вы можете выбрать доступное устройство и отправить файл для отправки на это устройство. Если вы не хотите использовать этот способ, попробуйте 32feet.net.uk. Это было здорово для разработки Bluetooth для C # и VB.NET.

...