From 0f3479a464c5ab5a9d9bc9695a0771c41829ae52 Mon Sep 17 00:00:00 2001
From: uvok
Date: Fri, 1 Aug 2025 19:52:51 +0200
Subject: Request permissions on scan
---
lib/widgets/scan_page.dart | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/lib/widgets/scan_page.dart b/lib/widgets/scan_page.dart
index bcb3525..f6695fe 100644
--- a/lib/widgets/scan_page.dart
+++ b/lib/widgets/scan_page.dart
@@ -13,6 +13,8 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
+import 'dart:io';
+
import 'package:uvok_epaper_badge/control/scanner_controller.dart';
import 'package:uvok_epaper_badge/widgets/device_details.dart';
import 'package:uvok_epaper_badge/widgets/device_scan_select.dart';
@@ -61,13 +63,21 @@ class _ScanPageState extends State {
selectedDevice = null;
});
- // ...
+ await getPermissions();
await widget.deviceScanner.startScan();
}
Future getPermissions() async {
+ // avoid spamming log with "unsupported" messages.
+ if (Platform.isLinux) return;
+
try {
- await Permission.bluetooth.request();
+ var status = await Permission.bluetooth.request();
+ logger.i("New BLE permission status: $status");
+ status = await Permission.bluetoothScan.request();
+ logger.i("New BLE scan permission status: $status");
+ status = await Permission.bluetoothConnect.request();
+ logger.i("New BLE connect permission status: $status");
} catch (e) {
logger.e(e.toString());
}
@@ -76,8 +86,6 @@ class _ScanPageState extends State {
@override
void initState() {
super.initState();
- // ehhh...
- getPermissions().ignore();
}
@override
--
cgit v1.2.3