Bluetooth – Xamarin.Forms

Olá, neste post irei demonstrar como sua aplicação Xamarin.Forms, pode encontrar dispositivos e conectar-se via bluetooth.

 

 

ADICIONANDO O NUGET PACKAGE

Clique com o botão direito em cima de sua Solution e selecione “Manage NuGet Packages for Solution…”.

1

 

Digite “Plugin.BLE” e selecione o plugin como demonstrado na imagem a seguir.

2

 

Selecione todos os projetos e clique no botão “Install”.

2

Xaml

Crie um botão para acionar o Scanner e uma lista onde será exibido todos os dispositivos encontrados. Adicione 2 labels, uma para aparecer o Nome do dispositivo e outra para o Address, como demonstrado a seguir:

C#

Crie as variáveis adapter, bluetoothBLE, list e device e inicialize no método construtor como demonstrado a seguir. 

 

Em seguida crie o método “searchDevice”, que irá verificar se o Bluetooth do dispositivo está ativado, se sim irá scannear os dispositivos, a cada dispositivo encontrado irá adicionar na variável list criada anteriormente.
Vale ressaltar que o ScanMode está configurado para “Balanced”, isso significa que este modo possui um desgaste da bateria balanceado.

 

E por último, crie o método “DevicesList_OnItemSelected” que irá se conectar com o dispositivo que foi selecionado na lista.

MainPage.xaml.cs

ANDROID

Edite o manifesto para adicionar algumas permissões, para isso clique com o botão direito no projeto .android e selecione Properties.

3

 

No Android Manifest selecione as seguintes permissões.

4

IOS

No projeto .iOS edite o arquivo Info.plist e adicione a seguinte permissão dentro de “dict” como demonstrado a seguir.

 

Resultado

ezgif.com-gif-maker (2)

 

 

Esse e todos os exemplos deste blog encontram-se disponíveis no GitHub.

icongithub

10 comentários em “Bluetooth – Xamarin.Forms

  1. Amigo estou com problemas de incompatibilidade no meu projeto xamarin e o plugin BLE.
    Criei um projeto Xamarin que nesta versão do visual studio não temos a opção PCL e somente .Net Framework onde quase tudo não tem compatibilidade, gostaria de saber como faço para que esta biblioteca funcione em meu projeto, você tem ideia de como fazer isto ?

    Outra dúvida é como enviar para um dispositivo informações, no meu caso quero enviar somente um char ‘L’ ou ‘E’ gostaria de obter também esta informação.

    Obrigado por compartilhar 😉

    Curtir

    1. Olá,

      No momento existe uma issue no repositório do projeto plugin BLE, se quiser acompanhar essa issue o link é: https://github.com/xabre/xamarin-bluetooth-le/issues/267

      Caso você necessite de uma solução imediata, recomendo baixar o projeto no github e utilizar esse método para realizar a conversão.
      https://blogs.msdn.microsoft.com/premier_developer/2017/10/27/converting-pcl-portable-class-libraries-libraries-to-net-standard-class-libraries/

      Da uma olhada no readme do projeto, lá tem exemplos de como vc pode trocar informações com o dispositivo: https://github.com/xabre/xamarin-bluetooth-le/blob/master/README.md

      Espero ter ajudado. 🙂

      Curtir

  2. Amigo, gostaria de saber se há como fazer uma conexão similiar, mas passando apenas um MacAdress de uma forma simples. Sem utilizar o BluetoothLE

    Curtir

  3. Ola Juliano. Gotstaria de parabenizar pelos seus artigos, bastante intuitivo. Possuo uma impressora termica via Bluetooth, mas nao tenho ideia de como devo comecar para imprimir, ja consigo reconhecer e conectar pelo seu codigo. O problema maior e que nao tem encontrei nada sobre impressao na net no xamarin forms. O SDK do fornecedor da impressora e em Android Studio. Haveria possibilidade de converter. Obrigado. Posso enviar para vc para analizar e futuros artigos sobre impressao Bluetooth e Wifi.

    Curtir

    1. Olá,

      Obrigado pelo feedback 🙂

      Você já verificou se existe algum Nuget Package disponibilizado pelo fornecedor ou pela comunidade para que possa te auxiliar com essa impressora ? Pois, desconheço se existe alguma forma de converter.

      Curtir

  4. Hi, and thank you Juliano for sharing your code

    The code compiles and the program loads to the search page without any problems. I have added the Nuget package and made the appropriate edits to the iOS and Android files. Unfortunately I am not finding any of my Bluetooth devices when I click search to perform the scan. I am running Visual Studio Community 2017 on Mac, and using an Iphone emulator. I have also reloaded the code into Visual Studio Community on Windows this time using an android emulator. I have also tried to use LivePlayer with an iphone, but this just crashes as soon as I press search. I have added a “write line” command just after device discovered and this does not write to the console, so I can only assume that I’m not finding the devices.

    My Bluetooth devices are all discoverable by my windows computer and my phone using their in built Bluetooth, so I am not sure what to try next. Needless to say I’m very new to this so I’d appreciate any suggestions.

    Please can you help?

    Thanks

    Sarah

    Curtir

    1. Hi Sarah,

      I believe that don’t work in Simulators and in Live Player.

      Try play in the android real device .

      I hope help you.

      Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s