From 162e2c78a922228dde3339a2ec54a30d57bb367d Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sun, 7 Jul 2019 22:26:44 +0200 Subject: [PATCH] Fix for Android O and above. --- .../services/TrackRecordingService.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/services/TrackRecordingService.java b/myTracks/src/main/java/com/google/android/apps/mytracks/services/TrackRecordingService.java index eb8ed7a5c..7e28a8b8c 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/services/TrackRecordingService.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/services/TrackRecordingService.java @@ -16,6 +16,9 @@ package com.google.android.apps.mytracks.services; +import android.app.Notification; +import android.app.NotificationChannel; +import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.Context; @@ -27,6 +30,7 @@ import android.location.Location; import android.location.LocationManager; import android.net.Uri; import android.os.Binder; +import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.os.PowerManager.WakeLock; @@ -484,10 +488,20 @@ public class TrackRecordingService extends Service { */ @VisibleForTesting protected void startForegroundService(PendingIntent pendingIntent, int messageId) { - NotificationCompat.Builder builder = new NotificationCompat.Builder(this).setContentIntent( - pendingIntent).setContentText(getString(messageId)) - .setContentTitle(getString(R.string.my_tracks_app_name)).setOngoing(true) - .setSmallIcon(R.drawable.ic_stat_notify_recording).setWhen(System.currentTimeMillis()); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + NotificationChannel notificationChannel = new NotificationChannel(getString(R.string.my_tracks_app_name), getString(R.string.my_tracks_app_name), NotificationManager.IMPORTANCE_DEFAULT); + NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + assert manager != null; + manager.createNotificationChannel(notificationChannel); + } + NotificationCompat.Builder builder = new NotificationCompat.Builder(this, getString(R.string.my_tracks_app_name)) + .setContentIntent(pendingIntent) + .setContentText(getString(messageId)) + .setContentTitle(getString(R.string.my_tracks_app_name)) + .setOngoing(true) + .setSmallIcon(R.drawable.ic_stat_notify_recording) + .setCategory(Notification.CATEGORY_SERVICE) + .setWhen(System.currentTimeMillis()); startForeground(1, builder.build()); }