API Bluetooth в Windows/.Net?
-
02-07-2019 - |
Вопрос
Я работаю над созданием сканера Bluetooth, который обнаруживает и идентифицирует мобильные устройства поблизости.Могу ли я добиться этого с помощью C# или мне нужно перейти к API C/C++?Мое приложение ориентировано на Windows XP и Vista.Указатели приветствуются.
Спасибо!
Решение
Одна из проблем с Bluetooth на ПК заключается в том, что используется несколько стеков BT, и вы никогда не можете точно знать, какой из них доступен на данном компьютере.Самые распространенные — Widcomm (ныне Broadcom) и Microsoft (появился в XP, возможно, в одном из пакетов обновлений).Однако некоторые поставщики оборудования BT комплектуют BlueSoleil, а некоторые используют Toshiba.Большинство ключей будут работать со стеком MS, поэтому библиотеки .NET, которые я видел, обычно используют его.
Каждый из стеков имеет совершенно другой способ выполнения части обнаружения, когда вы просматриваете ближайшие устройства и запрашиваете их услуги.
Если бы сегодня мне пришлось выбрать один подход, я бы, вероятно, сделал открытие на C++ и добавил интерфейс для .NET.
Когда я попробовал, 32feet.net работал довольно хорошо, но не поддерживал стек Widcomm.
Другие советы
Еще есть сайт 32feet.net Питера Фута.
http://inthehand.com/content/32feet.aspx
Я экспериментировал с этим еще в версии 1.5, и все работало хорошо.
Майк Петриченко имеет хорошую структуру BT.Он работает с BlueSoleil, Widcomm, Toshiba и Microsoft.
Теперь она называется Библиотекой беспроводной связи и работает с Bluetooth 802.11 и инфракрасным портом.Майк назвал компанию Soft Service Company и продает некоммерческие и коммерческие лицензии с исходным кодом и без него по ценам от 100 до 2050 долларов.
Лучший способ узнать устройства 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.