सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।
win_ble पैकेज विंडोज़ और शुद्ध डार्ट प्रोजेक्ट्स के लिए फ्लटर एप्लिकेशन में ब्लूटूथ लो एनर्जी (BLE) कार्यक्षमता सक्षम करता है। विशेष रूप से विंडोज़ के लिए डिज़ाइन किया गया, यह मूल ब्लूटूथ एलई क्षमताओं के लिए एक ब्रिज प्रदान करता है, जिससे विकासकर्ता उपकरणों की खोज कर सकते हैं, पेरिफेरल्स से कनेक्ट कर सकते हैं, चरित्रों को पढ़ और लिख सकते हैं, और BLE ऑपरेशन्स को प्रबंधित कर सकते हैं। यह प्लगइन विंडोज़ प्लेटफॉर्म पर BLE उपकरणों के साथ कम ऊर्जा वाले वायरलेस संचार की आवश्यकता वाले एप्लिकेशन के लिए आदर्श है। यह प्लेटफॉर्म चैनल्स के माध्यम से विंडोज़ ब्लूटूथ API का उपयोग करता है, जिससे फ्लटर इकोसिस्टम में विश्वसनीय प्रदर्शन सुनिश्चित होता है।
उपयोग
BLE सेंसर से कनेक्ट कर रहे हैं
BLE बीकॉन से डेटा पढ़ना
BLE-समर्थित आईओटी उपकरणों का नियंत्रण
विंडोज़-केवल हेल्थ मॉनिटरिंग ऐप्स विकसित करना
आस्थिति-आधारित विशेषताओं को लागू करना
मुख्य विशेषताएँ
विंडोज़-केवल BLE समर्थन
मूल विंडोज ब्लूटूथ API एकीकरण
डिवाइस खोज और कनेक्शन प्रबंधन
विशेषता पठन/लेखन संचालन
शुद्ध डार्ट संगतता
इनके लिए उपयुक्त
Windows डेस्कटॉप ऐप विकासकर्ता
आईओटी उपकरण एकीकरणकर्ता
स्वास्थ्य और फिटनेस ऐप निर्माता
ब्लूटूथ-केंद्रित उपयोगी उपकरण
Windows-विशिष्ट BLE की आवश्यकता वाले प्लेटफॉर्म-समर्थ एप्लिकेशन
विचार योग्य बातें
विंडोज़ प्लेटफॉर्म तक सीमित
Windows 10 या उसके बाद की आवश्यकता है
Android/iOS के लिए समर्थन नहीं
प्रणाली-स्तरीय ब्लूटूथ की अनुमति पर निर्भर करता है
कुछ हार्डवेयर के लिए अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता हो सकती है
मूल README
संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।
WinBle
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 WindowsawaitWinBle.initialize(serverPath: awaitWinServer.path());
// For pure dart projectsawaitWinBle.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 ConnectawaitWinBle.connect(address);
// Get Connection Updates HereStreamSubscription _connectionStream =
WinBle.connectionStreamOf(device.address).listen((event) {
// event will be a boolean , in which// true => Connected// false => Disconnected
});
To Disconnect
awaitWinBle.disconnect(address);
To get MaxMtuSize
awaitWinBle.getMaxMtuSize(address);
Handle Bluetooth radio
// To get rdaio statusWinBle.getBluetoothState();
// To get updates of radio stateWinBle.bleState.listen((BleState state) {
// Get BleState (On, Off, Unknown, Disabled, Unsupported)
});
// To turn on radioWinBle.updateBluetoothState(true);
// To turn off radioWinBle.updateBluetoothState(false);
Pairing Options
// To PairawaitWinBle.pair(address);
// To UnPairawaitWinBle.unPair(address);
// To Check if Device can be Pairedbool canPair = awaitWinBle.canPair(address);
// To Check if Device is Already Pairedbool isPaired = awaitWinBle.isPaired(address);
Rest All Methods are
// To Get Servicesvar services = awaitWinBle.discoverServices(address);
// To Get CharacteristicList<BleCharacteristic> bleCharacteristics = awaitWinBle.discoverCharacteristics(address: address, serviceId: serviceID);
// To Read CharacteristicList<int> data = awaitWinBle.read(address: address, serviceId: serviceID, characteristicId: charID);
// To Write CharacteristicawaitWinBle.write( address: address, service: serviceID, characteristic: charID, data: data, writeWithResponse: writeWithResponse);
// To Start SubscriptionawaitWinBle.subscribeToCharacteristic(address: address, serviceId: serviceID, characteristicId: charID);
// To Stop SubscriptionawaitWinBle.unSubscribeFromCharacteristic(address: address, serviceId: serviceID, characteristicId: charID);
// Get Characteristic Value Updates HereStreamSubscription _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 --------- >