Improve example app for system connected devices (#123)

* Improve example app for system connected devices

* Add print when no filter is set for system devices

---------

Co-authored-by: Foti Dim <fdimanidis@gmail.com>
This commit is contained in:
Rohit Sangwan
2025-01-07 08:55:32 +00:00
committed by GitHub
parent 07498db173
commit 17f834edef
2 changed files with 13 additions and 2 deletions
+2
View File
@@ -293,6 +293,8 @@ private class BleCentralDarwin: NSObject, UniversalBlePlatformChannel, CBCentral
func getSystemDevices(withServices: [String], completion: @escaping (Result<[UniversalBleScanResult], Error>) -> Void) {
var servicesFilter = withServices
if servicesFilter.isEmpty {
print("No services filter was set for getting system connected devices. Using default services...")
// Add several generic services
servicesFilter = ["1800", "1801", "180A", "180D", "1810", "181B", "1808", "181D", "1816", "1814", "181A", "1802", "1803", "1804", "1815", "1805", "1807", "1806", "1848", "185E", "180F", "1812", "180E", "1813"]
}
+11 -2
View File
@@ -1,3 +1,4 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:universal_ble/universal_ble.dart';
import 'package:universal_ble_example/data/mock_universal_ble.dart';
@@ -72,11 +73,19 @@ class _MyAppState extends State<MyApp> {
}
Future<void> _getSystemDevices() async {
// For macOS and iOS, it is recommended to set a filter to get system devices
if (defaultTargetPlatform == TargetPlatform.macOS ||
defaultTargetPlatform == TargetPlatform.iOS &&
(scanFilter?.withServices ?? []).isEmpty) {
showSnackbar(
"No services filter was set for getting system connected devices. Using default services...");
}
List<BleDevice> devices = await UniversalBle.getSystemDevices(
withServices: scanFilter?.withServices,
);
if (devices.isEmpty) {
showSnackbar("No Connected Devices Found");
showSnackbar("No System Connected Devices Found");
}
setState(() {
_bleDevices.clear();
@@ -191,7 +200,7 @@ class _MyAppState extends State<MyApp> {
),
if (BleCapabilities.supportsConnectedDevicesApi)
PlatformButton(
text: 'Connected Devices',
text: 'System Devices',
onPressed: _getSystemDevices,
),
PlatformButton(