diff --git a/src/com/android/settings/development/DevelopmentSettings.java b/src/com/android/settings/development/DevelopmentSettings.java
index 8831d23..ff5bc18 100644
--- a/src/com/android/settings/development/DevelopmentSettings.java
+++ b/src/com/android/settings/development/DevelopmentSettings.java
@@ -1876,7 +1876,7 @@
 
         synchronized (mBluetoothA2dpLock) {
             if (mBluetoothA2dp != null) {
-                codecStatus = mBluetoothA2dp.getCodecStatus();
+                codecStatus = mBluetoothA2dp.getCodecStatus(null);      // Use current active device
                 if (codecStatus != null) {
                     codecConfig = codecStatus.getCodecConfig();
                     codecsLocalCapabilities = codecStatus.getCodecsLocalCapabilities();
@@ -2095,14 +2095,14 @@
         case 6:
         synchronized (mBluetoothA2dpLock) {
             if (mBluetoothA2dp != null) {
-                mBluetoothA2dp.enableOptionalCodecs();
+                mBluetoothA2dp.enableOptionalCodecs(null); // Use current active device
             }
         }
         return;
         case 7:
         synchronized (mBluetoothA2dpLock) {
             if (mBluetoothA2dp != null) {
-                mBluetoothA2dp.disableOptionalCodecs();
+                mBluetoothA2dp.disableOptionalCodecs(null); // Use current active device
             }
         }
         return;
@@ -2225,7 +2225,8 @@
 
         synchronized (mBluetoothA2dpLock) {
             if (mBluetoothA2dp != null) {
-                mBluetoothA2dp.setCodecConfigPreference(codecConfig);
+                // Use current active device
+                mBluetoothA2dp.setCodecConfigPreference(null, codecConfig);
             }
         }
     }
