summaryrefslogtreecommitdiff
path: root/android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java
diff options
context:
space:
mode:
Diffstat (limited to 'android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java')
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java b/android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java
index 8e904a45f..371bc4e09 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java
@@ -33,12 +33,14 @@
package com.smartdevicelink.util;
import android.Manifest;
+import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
import android.os.Build;
import com.smartdevicelink.R;
@@ -198,6 +200,20 @@ public class IntegrationValidator {
boolean serviceFilterHasAction = false;
String className = localRouterClass.getName();
+
+ boolean areBtPermissionsEnabled = true;
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+ areBtPermissionsEnabled = false;
+ try {
+ ComponentName cn = new ComponentName(context.getPackageName(), className);
+ PackageManager pm = context.getPackageManager();
+ ServiceInfo serviceInfo = pm.getServiceInfo(cn, 0);
+ areBtPermissionsEnabled = AndroidTools.areBtPermissionsGranted(context, serviceInfo.packageName);
+ } catch (PackageManager.NameNotFoundException e) {
+ e.printStackTrace();
+ }
+ }
+
List<SdlAppInfo> services = AndroidTools.querySdlAppInfo(context, null, null);
for (SdlAppInfo sdlAppInfo : services) {
if (sdlAppInfo != null && sdlAppInfo.getRouterServiceComponentName() != null
@@ -206,7 +222,11 @@ public class IntegrationValidator {
break;
}
}
- if (!serviceFilterHasAction) {
+
+ if (!serviceFilterHasAction && !areBtPermissionsEnabled) {
+ retVal.successful = true;
+ retVal.resultText = "intent-filter not found for SdlRouterService because BT Permissions are disabled";
+ } else if (!serviceFilterHasAction && areBtPermissionsEnabled) {
retVal.successful = false;
retVal.resultText = "This application has not specified its intent-filter for the SdlRouterService.";
}