Las ventajas que te ofrece Microsoft Azure y el mundo.NET

Microsoft Band | cómo extraer su información para explotarla

microsoftband Microsoft Band es un producto joven, sólo lleva medio año de vida, que puede ser muy útil y productivo tanto personal como laboralmente debido a la gran cantidad de sensores e información que ofrece, así que poder extraerla y explotarla es crucial, así que veremos un sencillo ejemplo que nos valdrá para conocer qué podemos extraer, aunque al final, la creatividad siempre aporta más de los conceptos básicos.Hay que hacer una aclaración, lo que se desarrolla no es una aplicación residente en Microsoft Band, sino que se alojará en un Smartphone o Tablet donde consumiremos y explotaremos los datos. Para Microsoft Band se pueden desarrollar Apps Windows, iOS y Android, con lo que no es una excusa el sistema operativo que usen nuestros dispositivos del día a día.

¿Qué podemos extraer?

Con Microsoft Band podemos realizar diferentes operaciones como las que listo a continuación:

  • Personalización:
    • Color de fondo
    • Imagen de fondo
  • Configuración de los Tiles
    • Posición
    • Elementos visibles
  • Envío de notificaciones
  • Uso de los sensores
    • Acelerómetro
    • Calorías
    • Contacto
    • Distancia
    • Giroscopio
    • Pulsaciones
    • Podómetro
    • Temperatura de la piel
    • UV, sensor de rayos ultravioleta

Cómo desarrollar para Microsoft Band

En primer lugar, debemos comenzar por descargar el SDK para Microsoft Band desde este enlace donde podremos además encontrar ejemplos para Windows Phone, iOS y Android.

Lo que viene después es muy sencillo ya que el SDK ha sido bien trabajado por los desarrolladores de Microsoft y es muy simple conectarse y extraer información y con este código que os comparto, podréis conectaros a Microsoft Band, extraer la información de su versión de hardware y firmware y, además, suscribiros al sensor de pulsaciones y mostrar la información.

    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();

            this.NavigationCacheMode = NavigationCacheMode.Required;
        }

        /// <summary>
        /// Invoked when this page is about to be displayed in a Frame.
        /// </summary>
        /// <param name=»e»>Event data that describes how this page was reached.
        /// This parameter is typically used to configure the page.</param>
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            var bandClient = await BandConnect();
            if (bandClient != null)
            {
                var info = await GetBandVersion(bandClient);
                if (info != null)
                {
                    printInfo(info);
                }
                SubscribeSensorHeart(bandClient);
            }
        }

        private void printInfo(List<string> info)
        {
            this.fversion.Text += info[0];
            this.hversion.Text += info[1];
            //throw new NotImplementedException();
        }

        protected async Task<IBandClient> BandConnect()
        {
            // Get a list of paired Bands
            IBandInfo[] pairedBands = await BandClientManager.Instance.GetBandsAsync();

            try
            {
                IBandClient bandClient = await BandClientManager.Instance.ConnectAsync(pairedBands[0]);
                return bandClient;
            }
            catch (BandException ex)
            {
                return null;
            }

            //var bandManager = BandClientManager.Instance;
            //var pairedBands = await bandManager.GetBandsAsync();
            //if (pairedBands.Count() == 0)
            //    await Launcher.LaunchUriAsync(new Uri(«ms-settings-bluetooth:»));

        }

        protected async Task<List<string>> GetBandVersion(IBandClient bandClient)
        {
            var fwVersion = string.Empty;
            var hwVersion = string.Empty;

            try
            {
                var info = new List<string>();
                fwVersion = await bandClient.GetFirmwareVersionAsync();
                hwVersion = await bandClient.GetHardwareVersionAsync();
                info.Add(fwVersion);
                info.Add(hwVersion);
                return info;
            }
            catch (BandException ex)
            {
                return null;
            }
        }

        protected async void SubscribeSensorHeart(IBandClient bandClient)
        {
            if (bandClient.SensorManager.HeartRate.GetCurrentUserConsent() != UserConsent.Granted)
            {
                // user has not consented, request it
                await bandClient.SensorManager.HeartRate.RequestUserConsentAsync();
            }
            // hook up to the Heartrate sensor ReadingChanged event
            bandClient.SensorManager.HeartRate.ReadingChanged += HRReadingChange;

            // start the Heartrate sensor
            await bandClient.SensorManager.HeartRate.StartReadingsAsync();
        }

        private async void HRReadingChange(object sender, BandSensorReadingEventArgs<IBandHeartRateReading> e)
        {
            await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                IBandHeartRateReading hrReading = e.SensorReading;
                this.heartrate.Text = hrReading.HeartRate.ToString();
            });
        }
    }

wp_ss_20150723_0002[1]

A partir de aquí, vuestra imaginación es el límite para poder explotar los datos que ofrece Microsoft Band

mm

Sobre Santiago Porras Rodríguez

Innovation Team Leader at ENCAMINA | MVP in Developer Technologies. Apasionado por las nuevas tecnologías. Colaboro con la comunidad de desarrolladores escribiendo artículos en mi blog personal y ocasionalmente en CompartiMOSS.com. Además, soy uno de los coordinadores de TenerifeDev, grupo de usuarios de .NET de Tenerife y de otros grupos como Comunidad Office 365. Puedes encontrarme en la red microparticipando en Twitter con el usuario @saintwukong
Esta entrada ha sido publicada en Sin categoría. Enlace permanente.
Suscríbete a Piensa en Sofware desarrolla en Colores

Suscríbete a Piensa en Sofware desarrolla en Colores

Recibe todas las actualizaciones semanalmente de nuestro blog

You have Successfully Subscribed!

ENCAMINA, piensa en colores