Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev1.1.1

win_ble

Use o plugin WinBle para habilitar Bluetooth Low Energy em projetos Flutter Windows e Dart puro (somente Windows)

Windows
Downloads em 30 dias
137 mil
Curtidas
39
Pontos Pub
150

Instalar pacote

flutter pub add win_ble

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

O pacote win_ble habilita funcionalidades de Bluetooth Low Energy (BLE) em aplicativos Flutter voltados para Windows e projetos puros em Dart. Projetado especificamente para Windows, ele fornece uma ponte para os recursos nativos de BLE, permitindo que desenvolvedores descubram dispositivos, conectem-se a periféricos, leiam e escrevam características e gerenciem operações BLE. Este plugin é ideal para aplicações que exigem comunicação sem fio de baixo consumo de energia com dispositivos BLE em plataformas Windows. Ele utiliza a API de Bluetooth do Windows por meio de canais de plataforma, garantindo desempenho confiável dentro do ecossistema Flutter.

Casos de uso

  • Conectando a sensores BLE
  • Lendo dados de beacon BLE
  • Controlando dispositivos IoT habilitados para BLE
  • Desenvolvendo aplicativos de monitoramento de saúde exclusivos para Windows
  • Implementando funcionalidades baseadas na proximidade

Principais recursos

  • Suporte BLE exclusivo para Windows
  • Integração da API nativa do Bluetooth do Windows
  • Descoberta de dispositivos e gerenciamento de conexões
  • Operações de leitura/gravação de características
  • Compatibilidade com Dart puro

Indicado para

  • desenvolvedores de aplicativos para desktop do Windows
  • Integradores de dispositivos IoT
  • criadores de aplicativos de saúde e condicionamento físico
  • Ferramentas úteis centradas no Bluetooth
  • Aplicativos multiplataforma com necessidades específicas do Windows para BLE

Considerações

  • Limitado à plataforma Windows
  • Requer Windows 10 ou posterior
  • Sem suporte para Android/iOS
  • Depende das permissões de Bluetooth em nível de sistema
  • Pode exigir configuração adicional para determinados hardware

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

WinBle

win_ble version

Use the WinBle plugin to enable Bluetooth Low Energy in Flutter Windows and pure Dart projects (Windows only)

Usage

First initialize WinBle, to initialize on Flutter Windows, get server path using await WinServer.path, and for pure dart projects ( Windows only ) Download BleServer.exe file and place in the same folder, checkout example_dart for more details

  // To initialize on Flutter Windows
  await WinBle.initialize(serverPath: await WinServer.path());

  // For pure dart projects
  await WinBle.initialize(serverPath: "Path of BLEServer.exe file");

Dispose WinBle after using

 WinBle.dispose();

To Start Scan

 WinBle.startScanning();

 StreamSubscription? scanStream = WinBle.scanStream.listen((event) {
  // Get Devices Here
 });

To Stop Scan

  WinBle.stopScanning();

  scanStream?.cancel();

To Connect

 // To Connect
 await WinBle.connect(address);

 // Get Connection Updates Here
 StreamSubscription  _connectionStream =
    WinBle.connectionStreamOf(device.address).listen((event) {
    // event will be a boolean , in which
    // true => Connected
    // false => Disconnected
 });

To Disconnect

  await WinBle.disconnect(address);

To get MaxMtuSize

  await WinBle.getMaxMtuSize(address);

Handle Bluetooth radio

  // To get rdaio status
  WinBle.getBluetoothState();

  // To get updates of radio state
  WinBle.bleState.listen((BleState state) {
    // Get BleState (On, Off, Unknown, Disabled, Unsupported)
  });

  // To turn on radio
  WinBle.updateBluetoothState(true);

  // To turn off radio
  WinBle.updateBluetoothState(false);

Pairing Options

  // To Pair
  await WinBle.pair(address);

  // To UnPair
  await WinBle.unPair(address);

  // To Check if Device can be Paired
  bool canPair = await WinBle.canPair(address);

  // To Check if Device is Already Paired
  bool isPaired = await WinBle.isPaired(address);

Rest All Methods are

  // To Get Services
  var services = await WinBle.discoverServices(address);

  // To Get Characteristic
  List<BleCharacteristic> bleCharacteristics = await WinBle.discoverCharacteristics(address: address, serviceId: serviceID);

  // To Read Characteristic
  List<int> data = await WinBle.read(address: address, serviceId: serviceID, characteristicId: charID);

  // To Write Characteristic
  await WinBle.write( address: address, service: serviceID,  characteristic: charID,  data: data, writeWithResponse: writeWithResponse);

  // To Start Subscription
  await WinBle.subscribeToCharacteristic(address: address, serviceId: serviceID, characteristicId: charID);

  // To Stop Subscription
  await WinBle.unSubscribeFromCharacteristic(address: address, serviceId: serviceID, characteristicId: charID);

  // Get Characteristic Value Updates Here
   StreamSubscription _characteristicValueStream = WinBle.characteristicValueStream.listen((event) {
     // Here We will Receive All Characteristic Events
   });

Note

Requires Windows version >= 10.0.15014

If windows release build opens cmd while running app, try this

Edit your /windows/runner/main.cpp file, this is a known flutter issue

if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()){
CreateAndAttachConsole();
}
// Add this Code
// <------- From Here --------- >
else{
    STARTUPINFO si = {0};
    si.cb = sizeof(si);
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_HIDE;

    PROCESS_INFORMATION pi = {0};
    WCHAR lpszCmd[MAX_PATH] = L"cmd.exe";
    if (::CreateProcess(NULL, lpszCmd, NULL, NULL, FALSE, CREATE_NEW_CONSOLE | CREATE_NO_WINDOW, NULL, NULL, &si, &pi))
    {
      do
      {
        if (::AttachConsole(pi.dwProcessId))
        {
          ::TerminateProcess(pi.hProcess, 0);
          break;
        }
      } while (ERROR_INVALID_HANDLE == GetLastError());
      ::CloseHandle(pi.hProcess);
      ::CloseHandle(pi.hThread);
    }
}
// <------- UpTo Here --------- >

Additional information

Thanks to noble-winrt for initial BleServer Code

This is Just The Initial Version feel free to Contribute or Report any Bug!

Categorias

Dependências

Lista de dependências 1 itens

Repositório-fonte

Projetos que usam este pacote

Rankings