From 1b84dd1b54c7e8cce35adaec92b1d3fe985dea7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Rebelo?= Date: Thu, 23 Apr 2026 22:29:03 +0100 Subject: [PATCH] Avoid crash when BLE Scan Service is enabled on zip restore --- .../gadgetbridge/service/btle/BLEScanService.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BLEScanService.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BLEScanService.java index fb2d906601..ada4365e2e 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BLEScanService.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BLEScanService.java @@ -231,10 +231,17 @@ public class BLEScanService extends Service { private void startForeground() { Notification serviceNotification = createNotification(false, 0); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { - ServiceCompat.startForeground(this, GB.NOTIFICATION_ID_SCAN, serviceNotification, ServiceInfo.FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE); - } else { - ServiceCompat.startForeground(this, GB.NOTIFICATION_ID_SCAN, serviceNotification, 0); + try { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + ServiceCompat.startForeground(this, GB.NOTIFICATION_ID_SCAN, serviceNotification, ServiceInfo.FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE); + } else { + ServiceCompat.startForeground(this, GB.NOTIFICATION_ID_SCAN, serviceNotification, 0); + } + } catch (final SecurityException e) { + // FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE will fail if the user has not granted the necessary permissions + // this can cause a crash on startup when restoring a zip with BLE scan service enabled + LOG.error("Failed to start foreground service", e); + updateNotification(e.getMessage()); } }