Pregunta

Estoy en el proceso de escribir un escáner Bluetooth que localiza e identifica los dispositivos móviles en la vecindad local. ¿Es esto algo que puedo lograr usando C #, o tengo que desplegar en las API de C / C ++? Mi aplicación está dirigida a Windows XP y Vista. Los punteros son apreciados.

¡Gracias!

¿Fue útil?

Solución

Un problema con Bluetooth en la PC es que hay varias pilas de BT en uso y nunca se puede saber cuál está disponible en una máquina determinada. Los más comunes son Widcomm (ahora Broadcom) y Microsoft (aparecido en XP, quizás uno de los paquetes de servicio). Sin embargo, algunos proveedores de hardware de BT empaquetan BlueSoleil y otros usan Toshiba. La mayoría de los dongles funcionarán con la pila MS, por lo que las bibliotecas .NET que he visto tienden a usar eso.

Cada una de las pilas tiene una forma totalmente diferente de realizar la parte de descubrimiento en la que busca dispositivos cercanos y consulta sus servicios.

Si tuviera que elegir un enfoque hoy, probablemente haría el descubrimiento en C ++ y agregaría una interfaz para .NET.

El material de 32feet.net funcionó bastante bien cuando lo probé pero no era compatible con la pila Widcomm.

Otros consejos

También hay 32feet.net de Peter Foot

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

He jugado con esto cuando era v1.5 y funcionó bien.

Mike Petrichenko tiene un buen marco de BT. Funciona con BlueSoleil, Widcomm, Toshiba y Microsoft.

Ahora se llama Biblioteca de comunicaciones inalámbricas y funciona con Bluetooth 802.11 e Infrarrojo. Mike nombró a la compañía Soft Service Company y vende licencias no comerciales y comerciales con y sin código fuente en precios que oscilan entre $ 100 y $ 2050.

La mejor forma de conocer los dispositivos Bluetooth y enviar archivos a un dispositivo Bluetooth desde su PC es usar ese 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);
        }
    }

Puedes llamar a este método como

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

Por lo tanto, aparece el Asistente de transferencia de archivos Bluetooth y puede elegir el dispositivo disponible y enviar el archivo para enviar ese dispositivo. Si no quieres usar de esa manera, prueba 32feet.net.uk. Eso fue genial para el desarrollo de bluetooth para C # y VB.NET.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top