Bluetooth APIs em Windows / .net?
-
02-07-2019 - |
Pergunta
Eu estou no processo de escrever um scanner Bluetooth que localiza e identifica os dispositivos móveis na vizinhança local. Isto é algo que eu posso realizar usando C #, ou que eu preciso para descer para as APIs C / C ++? Meu aplicativo tem como alvo o Windows XP e Vista. Os ponteiros são apreciados.
Obrigado!
Solução
Um problema com Bluetooth no PC é que existem várias pilhas BT em uso e você nunca consegue saber qual deles está disponível em uma determinada máquina. Os mais comuns são Widcomm (agora Broadcom) e Microsoft (apareceu em XP, talvez um dos service packs). No entanto, alguns fornecedores de hardware BT empacotar BlueSoleil e alguns usam Toshiba. A maioria dos dongles irá trabalhar com o MS pilha para as bibliotecas .NET que eu vi tendem a usá-lo.
Cada uma das pilhas tem uma maneira totalmente diferente de fazer a parte descoberta onde procurar dispositivos próximos e inquirir os seus serviços.
Se eu tivesse que escolher uma abordagem hoje eu provavelmente faria a descoberta em C ++ e adicionar uma interface para .NET.
O material 32feet.net funcionou muito bem quando eu tentei, mas não apoiou a pilha Widcomm.
Outras dicas
Há também de Peter Foot 32feet.net
http://inthehand.com/content/32feet.aspx
Eu tenho jogado ao redor com esta volta quando era v1.5 e funcionou bem.
Mike Petrichenko tem um bom quadro BT. Ele funciona com BlueSoleil, Widcomm, Toshiba e Microsoft.
Ele é agora chamado a Biblioteca comunicações sem fio e funciona com Bluetooth 802.11 e infravermelho. Mike chamado a empresa Soft Service Empresa e vende licenças não-comercial e comercial com e sem código-fonte em preços que variam entre US $ 100 e US $ 2050.
A melhor maneira de saber Bluetooth dispositivos e arquivo enviar para o dispositivo bluetooth de seu PC é usar esse código.
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);
}
}
Você pode chamar esse método como
string command = "fsquirt";
ExecuteCommandSync(command);
Assim, BluetoothFileTransferWizard aparecer e você pode escolher disponível arquivo de dispositivo e de envio para enviar esse dispositivo. Se você não quiser usar dessa forma, tente 32feet.net.uk. Isso foi ótimo para Bluetooth desenvolvimento para C # e VB.NET.