#VS2015 – Enumerando BlueTooth LE Devices en #Android con #Xamarin

Hola!

Hoy voy a comenzar con una serie de posts sobre cómo trabajar con Xamarin y dispositivos BlueTooth LE. Ya he escrito un par de posts sobre cómo trabajar con Windows 10 Universal Apps y BlueTooth LE, en esos ejemplos lo que hacía era conectarme a un sensor de latidos del corazón y mostrar el valor del mismo en una App. El ejemplo de hoy es más simple: mostrar todos los BLE Devices que puede detectar un Android .

Lo primero que haremos es crear una app de Xamarin para Android.

Nota: Si no conoces Xamarin, en la sección de referencias he dejado un link con recursos para comenzar a trabajar con Android.

El siguiente paso es agregar dentro de la vista principal un botón y un texto multilínea. La app es más que simple, al presionar el botón, se listarán los Devices BLE encontrados.

El siguiente paso es identificar el botón y la caja de texto. Además de crear una nueva instancia de BlueToothLeScanner para listar los dispositivos BlueTooth Low Energy y suscribirse a los eventos ScanTimeOutElapsed() y DeviceDiscovered().

Importante: Por lo que he visto, hay 2 modos de trabajar con BlueTooth Devices. Para los dispositivos normales, hay que utilizar la clase Adapter, que se obtiene desde el servicio de sistema de BlueTooth, líneas 30 a 32. En el caso de BlueTooth LE, este no es un servicio de sistema, simplemente tenemos que crear una nueva instancia de BlueToothLeScanner, y trabajar con este objeto, líneas 34 a 36.

Luego en el evento DeviceDiscovered() mostraremos el nuevo device en la caja de texto, línea 45 a 29.

Lo mismo haremos cuando el proceso de scan de error, líneas 39 a 43.

Finalmente, en el clic del botón iniciaremos el proceso de búsqueda de Devices BLE.

El resultado de la app en funcionamiento es el siguiente

No tengo en claro por qué me retorna muchas veces el mismo device. Aunque eso no es problema, tengo un par de noches para sacarlo adelante.

Puedes descargar el código desde aquí, https://github.com/elbruno/Blog/tree/master/Xamarin/AndroidApp4

Saludos @ Barcelona

/El Bruno

References

– El Bruno, posts on BlueTooth LE https://elbruno.com/category/BLE/

– Polar Heart Rate Sensor H7, http://www.polar.com/us-en/products/accessories/H7_heart_rate_sensor

– Xamarin, Hello Android http://developer.xamarin.com/guides/android/getting_started/hello,android/

– Xamarin Android.Bluetooth.LE.BluetoothLeScanner http://developer.xamarin.com/api/type/Android.Bluetooth.LE.BluetoothLeScanner/

[Tags Visual Studio 2015, Xamarin, Bluetooth, BLE, Android]

Advertisements

7 thoughts on “#VS2015 – Enumerando BlueTooth LE Devices en #Android con #Xamarin

  1. Hola amigo… disculpa no puedo descargar el código de ejemplo desde la liga que dejas y otra, que librerias agregas para poder utilizar “BluetoothLeScanner” ??? ya habilité permisos en el archivo Manifest.. pero no me deja utilizar el espacio de nombres Bluetoot.LE .. que crees que se me pueda estar pasando ?

    Like

  2. Hola amigo que tal, disculpa, no puedo descargar el código de ejemplo que dejas en el link, y una duda, ya habilité los permisos en el arhivo Manifest para poder utilizar el bluetooth, pero que librerías estas utilizando? cuando quiero utilizar “BluetoothLeScanner” no permite y me da un error, intente utilizar el espacio de nombre Bluetoot.LE pero no me permite.. que crees que se me pueda estar pasando??
    ..

    Like

  3. Hola que tal Bruno, muchas gracias por contestar, estoy haciendo una aplicación para Android en Xamarin, lo que pretendo hacer es un scanner de dispositivos BLE y después emparejarme con uno para obtener información del mismo (datos que el dispositivo pretende enviar).

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s