summaryrefslogtreecommitdiff
path: root/android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java
diff options
context:
space:
mode:
Diffstat (limited to 'android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java')
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java30
1 files changed, 20 insertions, 10 deletions
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 b99958fae..3e5665556 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
@@ -204,7 +204,7 @@ public class AndroidTools {
return sdlAppInfoList;
}
- public static boolean areBtPermissionsGranted(Context context, String servicePackageName) {
+ public static boolean isBtConnectPermissionGranted(Context context, String servicePackageName) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
//Permissions are only for SDK 31 and above
return true;
@@ -214,11 +214,28 @@ public class AndroidTools {
try {
packageInfo = packageManager.getPackageInfo(servicePackageName, PackageManager.GET_PERMISSIONS);
int btConnectPermission = packageManager.checkPermission(BLUETOOTH_CONNECT, packageInfo.packageName);
+ return btConnectPermission == PackageManager.PERMISSION_GRANTED;
+ } catch (NameNotFoundException e) {
+ e.printStackTrace();
+ DebugTool.logError(TAG, "servicePackageName not found while checking BT Connect permissions");
+ return false;
+ }
+ }
+
+ public static boolean isBtScanPermissionGranted(Context context, String servicePackageName) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
+ //Permissions are only for SDK 31 and above
+ return true;
+ }
+ PackageManager packageManager = context.getPackageManager();
+ PackageInfo packageInfo;
+ try {
+ packageInfo = packageManager.getPackageInfo(servicePackageName, PackageManager.GET_PERMISSIONS);
int btScanPermission = packageManager.checkPermission(BLUETOOTH_SCAN, packageInfo.packageName);
- return btConnectPermission == PackageManager.PERMISSION_GRANTED && btScanPermission == PackageManager.PERMISSION_GRANTED;
+ return btScanPermission == PackageManager.PERMISSION_GRANTED;
} catch (NameNotFoundException e) {
e.printStackTrace();
- DebugTool.logError(TAG, "servicePackageName not found while checking BT permissions");
+ DebugTool.logError(TAG, "servicePackageName not found while checking BT SCAN permissions");
return false;
}
}
@@ -250,13 +267,6 @@ 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