summaryrefslogtreecommitdiff
path: root/android/sdl_android
diff options
context:
space:
mode:
authorRHeniz <heniganr1@gmail.com>2021-11-19 16:08:42 -0500
committerRHeniz <heniganr1@gmail.com>2021-11-19 16:08:42 -0500
commit71dc5f62629e76544a16b9ee67d083548167991d (patch)
tree6daa267f05a2b0ef376ef63e49c8e45b82cf4241 /android/sdl_android
parente5bb2cf6648ced76dff582a87ac56bcb89d2e2e6 (diff)
downloadsdl_android-71dc5f62629e76544a16b9ee67d083548167991d.tar.gz
Add PendingIntents to start services from RS
Diffstat (limited to 'android/sdl_android')
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java7
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java8
2 files changed, 15 insertions, 0 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java
index fa4ba4054..ca585c445 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java
@@ -1826,6 +1826,10 @@ public class SdlRouterService extends Service {
startService.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+ startService.putExtra(TransportConstants.PENDING_BOOLEAN_EXTRA, true);
+ }
+
AndroidTools.sendExplicitBroadcast(getApplicationContext(), startService, null);
//HARDWARE_CONNECTED
@@ -2902,6 +2906,9 @@ public class SdlRouterService extends Service {
if (receivedVehicleType != null) {
pingIntent.putExtra(TransportConstants.VEHICLE_INFO_EXTRA, receivedVehicleType.getStore());
}
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+ pingIntent.putExtra(TransportConstants.PENDING_BOOLEAN_EXTRA, true);
+ }
}
private void startClientPings() {
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java b/android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java
index 02ef5169d..0b9125352 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java
@@ -32,6 +32,7 @@
package com.smartdevicelink.util;
+import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -249,6 +250,13 @@ public class AndroidTools {
for (ResolveInfo app : apps) {
try {
intent.setClassName(app.activityInfo.applicationInfo.packageName, app.activityInfo.name);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && intent.getBooleanExtra(TransportConstants.PENDING_BOOLEAN_EXTRA, false)) {
+ Intent pending = new Intent();
+ PendingIntent pendingIntent = PendingIntent.getForegroundService(context, (int) System.currentTimeMillis(), pending, PendingIntent.FLAG_MUTABLE | Intent.FILL_IN_COMPONENT);
+ intent.putExtra(TransportConstants.PENDING_INTENT_EXTRA, pendingIntent);
+ }
+
context.sendBroadcast(intent);
} catch (Exception e) {
//In case there is missing info in the app reference we want to keep moving