Hola!
En el post anterior mostré como configurar una solución de Xamarin Forms para que detecte un beacon Estimote. En la siguiente imagen, utilizo la app de Estimote para emular un beacon (izq), y en la app de Xamarin en Android muestro la información del beacon detectado (derecha)
Ahora bien, para entender como funciona la app es necesario remarcar un par de cosas
Beacons Search
Un beacon se identifica en 3 partes:
- UUID (16 bytes)
- major number (2 bytes)
- minor number (2 bytes)
Importante: Estimote tiene un link recomendable para leer sobre el tema, aquí (link).
Todos los beacons Estimote utlizan el mismo UUID: B9407F30-F5F8-466E-AFF9-25556B57FE6D
En la app de ejemplo, el UUID que utilizamos para la búsqueda es diferente: 8492E75F-4FD6-469D-B132-043FE94921D8
Esto es porque no estoy utilizando beacons reales para las pruebas, sino el emulador de beacons que está disponible en la app de Estimote para iOS. En el caso de un virtual beacon:
- UUID siempre es to 8492E75F-4FD6-469D-B132-043FE94921D8
- Los valores de Major y Minor values se generan al azar al activar el virtual beacon y se mantienen fijos con el mismo
En la sección de referencias hay un link sobre como utilizar esta feature.
Con esta información ya podemos inicializar nuestra app para que detecte beacons (lineas 61 y 62)
Beacons Detected
Si utilizamos la app de Estimote para detectar beacons, veremos que la misma nos muestra in virtual beacon detectado. Ahora ya podemos probar el código de nuestra app para ver que información nos retorna por cada beacon detectado.
Cuando la app detecta uno o más beacons, el evento Ranged() retorna una colección de los mismos. Como comentaba en el punto anterior, los valores de UUID, Major y Minor se incluyen para cada beacon, además de una propiedad para definir la cercania del beacon.
En próximos posts mostraré como trabajar con el concepto de proximidad del beacon, por ahora la propiedad Proximity nos indica la distancia al beacon con:
El código fuente de la app se puede descargar desde GitHub https://github.com/elbruno/Blog/tree/master/Xamarin%20Estimote%20Beacons
Saludos @ Madrid
-El Bruno
References
- El Bruno Estimote and Star Wars
- El Bruno Primeros pasos con #Estimote Beacons
- NuGet Estimote SDK for Xamarin Android
- NuGet Estimote SDK for Xamarin.iOS
- NuGet ACR Estimote PlugIn for Xamarin
- Estimote Beacons and Regions
- Estimote How to turn my iPhone into a Virtual Beacon
Fue de mucha utilidad tu entrada, compré unos beacons estimotes en diciembre 2017 e intente probar tu código pero solo me funciona para el virtual ebeacons, pero cuando intento escanear los que compré no los encuentra, podrás orientarme a que se debe esto?
LikeLike
Hola Nany, entiendo que los escaneas desde tu smartphone? has probado con las apps oficiales?
LikeLike
Estoy utilizando tu código con mi celular es un huawei Y6II pero no me funciona, solo me funciona cuando utilizo un beacon virtual en el iphone de un amigo. Por eso me surge la duda que no se si será el nugget estimote.xplat que está desactualizado o alguna otra cosa, porque simplemente no lee el beacons.
LikeLike
Yo compile tu codigo en mi celular y no me funciona para dectectar los beacons fisicos… solo me funciona cuando tengo un beacon virtual 😦
LikeLike