Hola!
Sigo con los posts de BlueTooth con 32Feet, la verdad es que me está dando bastantes sorpresas y muy agradables algunas. El siguiente código es de una app de consola que una vez encontrado un device bluetooh que corresponde a un Windows Phone 8.1, se encarga de ver si el mismo está en un rango de conexión aceptable.
1: class Program
2: {
3: static void Main()
4: {
5: var wp = GetWindowsPhoneBtDevice();
6: Console.WriteLine("{0}Press any key to validate if device is in range, or ESC to close the app", Environment.NewLine);
7: bool exit;
8: var i = 0;
9: do
10: {
11: i++;
12: ValidateIfDeviceIsOnRange(i, wp);
13: var cki = Console.ReadKey(true);
14: exit = cki.Key == ConsoleKey.Escape;
15: } while (!exit);
16: }
17:
18: private static void ValidateIfDeviceIsOnRange(int i, BluetoothDeviceInfo wp)
19: {
20: Console.WriteLine(" " + i + " validating device in range");
21: var inRange = true;
22: var fakeUuid = new Guid("{F13F471D-47CB-41d6-9609-BAD0690BF891}"); // A specially created value, so no matches.
23: try
24: {
25: wp.GetServiceRecords(fakeUuid);
26: }
27: catch (SocketException)
28: {
29: inRange = false;
30: }
31: Console.WriteLine(" In range: " + inRange);
32: }
33:
34: private static BluetoothDeviceInfo GetWindowsPhoneBtDevice()
35: {
36: // You can get this from my previous post ...
37: }
38: }
El código es bastante simple y la verdad es que el resultado es 100% aceptable. El siguiente video muestra mi Lumia 1520 donde cambio el estado de BlueTooth en ON / OFF y como luego la app de consola verifica el estado y muestra el true / false.
Nota: cada operación de discovery tarda unos 5 segundos, con lo que no es lo fluido que me gustaría este proceso.
Siguiente paso, madurar esto para que esté orientado a eventos!
Saludos @ La Finca
El Bruno
Leave a comment