summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/BluetoothManagerService.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java
index 798a4c663c51..a3188443591f 100644
--- a/services/core/java/com/android/server/BluetoothManagerService.java
+++ b/services/core/java/com/android/server/BluetoothManagerService.java
@@ -74,6 +74,7 @@ import com.android.server.pm.UserRestrictionsUtils;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.HashMap;
+import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Locale;
import java.util.Map;
@@ -695,6 +696,35 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
return mIsHearingAidProfileSupported;
}
+ @Override
+ /** @hide */
+ public java.util.List<String> getSystemConfigEnabledProfilesForPackage(String packageName) {
+ if (Binder.getCallingUid() != Process.BLUETOOTH_UID) {
+ Slog.w(TAG, "getSystemConfigEnabledProfilesForPackage(): not allowed for non-bluetooth");
+ return null;
+ }
+
+ SystemConfig systemConfig = SystemConfig.getInstance();
+ if (systemConfig == null) {
+ return null;
+ }
+
+ android.util.ArrayMap<String, Boolean> componentEnabledStates =
+ systemConfig.getComponentsEnabledStates(packageName);
+ if (componentEnabledStates == null) {
+ return null;
+ }
+
+ ArrayList enabledProfiles = new ArrayList<String>();
+ for (Map.Entry<String, Boolean> entry : componentEnabledStates.entrySet()) {
+ if (entry.getValue()) {
+ enabledProfiles.add(entry.getKey());
+ }
+ }
+
+ return enabledProfiles;
+ }
+
// Monitor change of BLE scan only mode settings.
private void registerForBleScanModeChange() {
ContentObserver contentObserver = new ContentObserver(null) {