From 5ab34cd32f54fd0330c8b82a6873def58324d7ac Mon Sep 17 00:00:00 2001 From: estevez-dev Date: Mon, 20 Jul 2020 23:41:13 +0300 Subject: [PATCH] Fix backround launch of location service --- .../java/com/keyboardcrumbs/hassclient/LocationUtils.java | 6 +++++- .../com/keyboardcrumbs/hassclient/MessagingService.java | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUtils.java b/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUtils.java index a0e024d..e651176 100644 --- a/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUtils.java +++ b/android/app/src/main/java/com/keyboardcrumbs/hassclient/LocationUtils.java @@ -92,7 +92,11 @@ class LocationUtils { static void requestLocationOnce(Context context) { Intent myService = new Intent(context, LocationRequestService.class); - context.startService(myService); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + context.startForegroundService(myService); + } else { + context.startService(myService); + } //OneTimeWorkRequest oneTimeWork = new OneTimeWorkRequest.Builder(LocationUpdatesWorker.class) // .build(); //WorkManager.getInstance(context).enqueueUniqueWork(LocationUtils.LOCATION_REQUEST_NAME, ExistingWorkPolicy.REPLACE, oneTimeWork); diff --git a/android/app/src/main/java/com/keyboardcrumbs/hassclient/MessagingService.java b/android/app/src/main/java/com/keyboardcrumbs/hassclient/MessagingService.java index ddfd233..7055e30 100644 --- a/android/app/src/main/java/com/keyboardcrumbs/hassclient/MessagingService.java +++ b/android/app/src/main/java/com/keyboardcrumbs/hassclient/MessagingService.java @@ -22,11 +22,14 @@ import com.google.firebase.messaging.RemoteMessage; import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.util.Log; import android.webkit.URLUtil; public class MessagingService extends FirebaseMessagingService { + private static final String TAG = MessagingService.class.getSimpleName(); + public static final String NOTIFICATION_ACTION_BROADCAST = "com.keyboardcrumbs.hassclient.haNotificationAction"; @Override @@ -53,6 +56,7 @@ public class MessagingService extends FirebaseMessagingService { messageBody = data.get("body"); } if (messageBody != null && messageBody.equals(LocationUtils.REQUEST_LOCATION_NOTIFICATION)) { + Log.d(TAG, "Location update request received"); LocationUtils.requestLocationOnce(this); return; }