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(-) (limited to 'lib') 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