Pakete, Repositories und App-Kategorien suchen

Paketdetailsv1.1.1

win_ble

Verwenden Sie das WinBle-Plugin, um Bluetooth Low Energy in Flutter Windows und reinen Dart-Projekten zu aktivieren (nur Windows)

Windows
30-Tage-Downloads
137.000
Likes
39
Pub-Punkte
150

Paket installieren

flutter pub add win_ble

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Das win_ble-Paket ermöglicht Bluetooth Low Energy (BLE)-Funktionen in Flutter-Anwendungen für Windows und reine Dart-Projekte. Speziell für Windows entwickelt, bietet es eine Brücke zu native BLE-Funktionen, sodass Entwickler Geräte entdecken, mit Peripheriegeräten verbinden, Eigenschaften lesen und schreiben sowie BLE-Operationen verwalten können. Dieses Plugin ist ideal für Anwendungen, die eine energieeffiziente drahtlose Kommunikation mit BLE-Geräten auf Windows-Plattformen erfordern. Es nutzt die Windows-Bluetooth-API über Plattformkanäle und gewährleistet eine zuverlässige Leistung innerhalb des Flutter-Ökosystems.

Anwendungsfälle

  • Verbindung zu BLE-Sensoren
  • Daten von BLE-Beacons lesen
  • Steuerung von BLE-fähigen IoT-Geräten
  • Entwicklung von Windows-exklusiven Gesundheitsüberwachungs-Apps
  • Näherungs-basierte Funktionen implementieren

Hauptmerkmale

  • Windows-spezifischer BLE-Support
  • Native Windows Bluetooth-API-Integration
  • Geräteentdeckung und Verbindungsverwaltung
  • Charakteristische Lese-/Schreibvorgänge
  • Reine Dart-Kompatibilität

Geeignet für

  • Windows-Desktop-App-Entwickler
  • IoT-Geräteintegratoren
  • Entwickler von Gesundheits- und Fitness-Apps
  • Bluetooth-zentrierte Hilfsprogramme
  • Plattformübergreifende Apps mit Windows-spezifischen BLE-Anforderungen

Hinweise

  • Beschränkt auf Windows-Plattform
  • Erfordert Windows 10 oder höher
  • Keine Unterstützung für Android/iOS
  • Abhängig von systemweiten Bluetooth-Berechtigungen
  • Kann zusätzliche Konfiguration für bestimmte Hardware erfordern

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

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!

Kategorien

Abhängigkeiten

Abhängigkeiten 1 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Ranglisten