From 7d9b6c0c644bb475f4fa85797f3736facc7ece2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Rudecki?= Date: Thu, 16 Nov 2023 11:46:59 +0100 Subject: [PATCH] Updater: Define foregroundServiceType Required since Android 14 [1]. 11-16 14:05:45.363 20623 20623 E AndroidRuntime: FATAL EXCEPTION: main 11-16 14:05:45.363 20623 20623 E AndroidRuntime: Process: org.lineageos.updater, PID: 20623 11-16 14:05:45.363 20623 20623 E AndroidRuntime: android.app.MissingForegroundServiceTypeException: Starting FGS without a type callerApp=ProcessRecord{6d14558 20623:org.lineageos.updater/u0a149} targetSDK=34 [1] https://developer.android.com/about/versions/14/changes/fgs-types-required Change-Id: Id6217424177b94d37621062fb1a55778f1dabbab --- app/src/main/AndroidManifest.xml | 15 +++++++++++++-- .../lineageos/updater/ExportUpdateService.java | 4 +++- .../updater/controller/UpdaterService.java | 7 +++++-- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cc485f7..80fd2bc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,6 +5,7 @@ + @@ -43,8 +44,18 @@ - - + + + + + + diff --git a/app/src/main/java/org/lineageos/updater/ExportUpdateService.java b/app/src/main/java/org/lineageos/updater/ExportUpdateService.java index 1c72ad2..4403d7f 100644 --- a/app/src/main/java/org/lineageos/updater/ExportUpdateService.java +++ b/app/src/main/java/org/lineageos/updater/ExportUpdateService.java @@ -20,6 +20,7 @@ import android.app.NotificationManager; import android.app.Service; import android.content.ContentResolver; import android.content.Intent; +import android.content.pm.ServiceInfo; import android.net.Uri; import android.os.IBinder; import android.os.SystemClock; @@ -156,7 +157,8 @@ public class ExportUpdateService extends Service { } }; - startForeground(NOTIFICATION_ID, notificationBuilder.build()); + startForeground(NOTIFICATION_ID, notificationBuilder.build(), + ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE); notificationManager.notify(NOTIFICATION_ID, notificationBuilder.build()); Runnable runnableComplete = () -> { diff --git a/app/src/main/java/org/lineageos/updater/controller/UpdaterService.java b/app/src/main/java/org/lineageos/updater/controller/UpdaterService.java index c279679..e1e0c99 100644 --- a/app/src/main/java/org/lineageos/updater/controller/UpdaterService.java +++ b/app/src/main/java/org/lineageos/updater/controller/UpdaterService.java @@ -24,6 +24,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; +import android.content.pm.ServiceInfo; import android.os.Binder; import android.os.Bundle; import android.os.IBinder; @@ -275,7 +276,8 @@ public class UpdaterService extends Service { mNotificationBuilder.setTicker(text); mNotificationBuilder.setOngoing(true); mNotificationBuilder.setAutoCancel(false); - startForeground(NOTIFICATION_ID, mNotificationBuilder.build()); + startForeground(NOTIFICATION_ID, mNotificationBuilder.build(), + ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE); mNotificationManager.notify(NOTIFICATION_ID, mNotificationBuilder.build()); break; } @@ -390,7 +392,8 @@ public class UpdaterService extends Service { mNotificationBuilder.setTicker(text); mNotificationBuilder.setOngoing(true); mNotificationBuilder.setAutoCancel(false); - startForeground(NOTIFICATION_ID, mNotificationBuilder.build()); + startForeground(NOTIFICATION_ID, mNotificationBuilder.build(), + ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE); mNotificationManager.notify(NOTIFICATION_ID, mNotificationBuilder.build()); break; }