diff --git a/android/app/src/com/android/bluetooth/hfp/HeadsetStateMachine.java b/android/app/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
index 382a61e146a305c3a9d779c083cb3f4ddcc73b92..e4ce5e0f66bac7af3a03b5600e20108d900d409f 100644
--- a/android/app/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
+++ b/android/app/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
@@ -159,6 +159,8 @@ public class HeadsetStateMachine extends StateMachine {
     // Audio disconnect timeout retry count
     private int mAudioDisconnectRetry = 0;
 
+    static final int HFP_SET_AUDIO_POLICY = 1;
+
     private BluetoothSinkAudioPolicy mHsClientAudioPolicy;
 
     // Keys are AT commands, and values are the company IDs.
@@ -1964,90 +1966,87 @@ public class HeadsetStateMachine extends StateMachine {
     }
 
     /**
-     * Look for Android specific AT command starts with AT+ANDROID and try to process it
+     * Process Android specific AT commands.
      *
-     * @param atString AT command in string
+     * @param atString AT command after the "AT+" prefix. Starts with "ANDROID"
      * @param device Remote device that has sent this command
-     * @return true if the command is processed, false if not.
      */
-    @VisibleForTesting
-    boolean checkAndProcessAndroidAt(String atString, BluetoothDevice device) {
-        log("checkAndProcessAndroidAt - atString = " + atString);
+    private void processAndroidAt(String atString, BluetoothDevice device) {
+        log("processAndroidSpecificAt - atString = " + atString);
 
         if (atString.equals("+ANDROID=?")) {
             // feature request type command
             processAndroidAtFeatureRequest(device);
-            mNativeInterface.atResponseCode(device, HeadsetHalConstants.AT_RESPONSE_OK, 0);
-            return true;
         } else if (atString.startsWith("+ANDROID=")) {
             // set type command
             int equalIndex = atString.indexOf("=");
             String arg = atString.substring(equalIndex + 1);
 
             if (arg.isEmpty()) {
-                Log.w(TAG, "Android AT command is empty");
-                return false;
+                Log.e(TAG, "Command Invalid!");
+                mNativeInterface.atResponseCode(device, HeadsetHalConstants.AT_RESPONSE_ERROR, 0);
+                return;
             }
 
             Object[] args = generateArgs(arg);
 
-            String type = (String) args[0];
-
-            if (type.equals(BluetoothSinkAudioPolicy.HFP_SET_SINK_AUDIO_POLICY_ID)) {
-                Log.d(TAG, "Processing command: " + atString);
-                if (processAndroidAtSinkAudioPolicy(args, device)) {
-                    mNativeInterface.atResponseCode(device,
-                            HeadsetHalConstants.AT_RESPONSE_OK, 0);
-                } else {
-                    Log.w(TAG, "Invalid SinkAudioPolicy parameters!");
-                    mNativeInterface.atResponseCode(device,
-                            HeadsetHalConstants.AT_RESPONSE_ERROR, 0);
-                }
-                return true;
+            if (!(args[0] instanceof Integer)) {
+                Log.e(TAG, "Type ID is invalid");
+                mNativeInterface.atResponseCode(device, HeadsetHalConstants.AT_RESPONSE_ERROR, 0);
+                return;
+            }
+
+            int type = (Integer) args[0];
+
+            if (type == HFP_SET_AUDIO_POLICY) {
+                processAndroidAtSetAudioPolicy(args, device);
             } else {
-                Log.w(TAG, "Undefined Android command type: " + type);
-                return false;
+                Log.w(TAG, "Undefined AT+ANDROID command");
+                mNativeInterface.atResponseCode(device, HeadsetHalConstants.AT_RESPONSE_ERROR, 0);
+                return;
             }
+        } else {
+            Log.e(TAG, "Undefined AT+ANDROID command");
+            mNativeInterface.atResponseCode(device, HeadsetHalConstants.AT_RESPONSE_ERROR, 0);
+            return;
         }
-
-        Log.w(TAG, "Unhandled +ANDROID command: " + atString);
-        return false;
+        mNativeInterface.atResponseCode(device, HeadsetHalConstants.AT_RESPONSE_OK, 0);
     }
 
     private void processAndroidAtFeatureRequest(BluetoothDevice device) {
         /*
-            replying with +ANDROID: (<feature1>, <feature2>, ...)
-            currently we only support one type of feature: SINKAUDIOPOLICY
+            replying with +ANDROID=1
+            here, 1 is the feature id for audio policy
+
+            currently we only support one type of feature
         */
         mNativeInterface.atResponseString(device,
                 BluetoothHeadset.VENDOR_RESULT_CODE_COMMAND_ANDROID
-                + ": (" + BluetoothSinkAudioPolicy.HFP_SET_SINK_AUDIO_POLICY_ID + ")");
+                + ": " + HFP_SET_AUDIO_POLICY);
     }
 
     /**
-     * Process AT+ANDROID=SINKAUDIOPOLICY AT command
+     * Process AT+ANDROID AT command
      *
      * @param args command arguments after the equal sign
      * @param device Remote device that has sent this command
-     * @return true on success, false on error
      */
-    @VisibleForTesting
-    boolean processAndroidAtSinkAudioPolicy(Object[] args, BluetoothDevice device) {
+    private void processAndroidAtSetAudioPolicy(Object[] args, BluetoothDevice device) {
         if (args.length != 4) {
-            Log.e(TAG, "processAndroidAtSinkAudioPolicy() args length must be 4: "
+            Log.e(TAG, "processAndroidAtSetAudioPolicy() args length must be 4: "
                     + String.valueOf(args.length));
-            return false;
+            return;
         }
         if (!(args[1] instanceof Integer) || !(args[2] instanceof Integer)
                 || !(args[3] instanceof Integer)) {
-            Log.e(TAG, "processAndroidAtSinkAudioPolicy() argument types not matched");
-            return false;
+            Log.e(TAG, "processAndroidAtSetAudioPolicy() argument types not matched");
+            return;
         }
 
         if (!mDevice.equals(device)) {
-            Log.e(TAG, "processAndroidAtSinkAudioPolicy(): argument device " + device
+            Log.e(TAG, "processAndroidAtSetAudioPolicy(): argument device " + device
                     + " doesn't match mDevice " + mDevice);
-            return false;
+            return;
         }
 
         int callEstablishPolicy = (Integer) args[1];
@@ -2059,7 +2058,6 @@ public class HeadsetStateMachine extends StateMachine {
                 .setActiveDevicePolicyAfterConnection(connectingTimePolicy)
                 .setInBandRingtonePolicy(inbandPolicy)
                 .build());
-        return true;
     }
 
     /**
@@ -2131,9 +2129,6 @@ public class HeadsetStateMachine extends StateMachine {
             processAtCpbs(atCommand.substring(5), commandType, device);
         } else if (atCommand.startsWith("+CPBR")) {
             processAtCpbr(atCommand.substring(5), commandType, device);
-        } else if (atCommand.startsWith("+ANDROID")
-                && checkAndProcessAndroidAt(atCommand, device)) {
-            // Do nothing
         } else {
             processVendorSpecificAt(atCommand, device);
         }
diff --git a/android/app/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachine.java b/android/app/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachine.java
index b63078329b818e0fee994b83f5d37ea732613b5a..79cdb0bfdecfe8c0f2a75f736e733ce360ee7257 100644
--- a/android/app/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachine.java
+++ b/android/app/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachine.java
@@ -188,6 +188,8 @@ public class HeadsetClientStateMachine extends StateMachine {
 
     private final boolean mClccPollDuringCall;
 
+    private static final int CALL_AUDIO_POLICY_FEATURE_ID = 1;
+
     public int mAudioPolicyRemoteSupported;
     private BluetoothSinkAudioPolicy mHsClientAudioPolicy;
     private final int mConnectingTimePolicyProperty;
@@ -1215,15 +1217,14 @@ public class HeadsetClientStateMachine extends StateMachine {
                             break;
 
                         case StackEvent.EVENT_TYPE_UNKNOWN_EVENT:
-                            if (mVendorProcessor.isAndroidAtCommand(event.valueString)
-                                    && processAndroidSlcCommand(event.valueString, event.device)) {
+                            if (mVendorProcessor.processEvent(event.valueString, event.device)) {
+                                mQueuedActions.poll();
                                 transitionTo(mConnected);
                             } else {
                                 Log.e(TAG, "Unknown event :" + event.valueString
                                         + " for device " + event.device);
                             }
                             break;
-
                         case StackEvent.EVENT_TYPE_SUBSCRIBER_INFO:
                         case StackEvent.EVENT_TYPE_CURRENT_CALLS:
                         case StackEvent.EVENT_TYPE_OPERATOR_NAME:
@@ -2026,44 +2027,6 @@ public class HeadsetClientStateMachine extends StateMachine {
         HfpClientConnectionService.onAudioStateChanged(device, newState, prevState);
     }
 
-    @VisibleForTesting
-    boolean processAndroidSlcCommand(String atString, BluetoothDevice device) {
-        if (!mCurrentDevice.equals(device) || atString.lastIndexOf("+ANDROID:") < 0) {
-            return false;
-        }
-
-        // Check if it is +ANDROID: (<feature1>,...),(<feature2>, ...) the reply for AT+ANDROID=?
-        while (true) {
-            int indexUpperBucket = atString.indexOf("(");
-            int indexLowerBucket = atString.indexOf(")");
-
-            if (indexUpperBucket < 0 || indexLowerBucket < 0
-                    || indexUpperBucket >= indexLowerBucket) {
-                break;
-            }
-            String feature = atString.substring(indexUpperBucket + 1, indexLowerBucket);
-            Log.d(TAG, "processAndroidSlcCommand: feature=[" + feature + "]");
-            processAndroidAtFeature(feature.split(","));
-
-            atString = atString.substring(indexLowerBucket + 1);
-        }
-        return true;
-    }
-
-    private void processAndroidAtFeature(String[] args) {
-        if (args.length < 1) {
-            Log.e(TAG, "processAndroidAtFeature: Invalid feature length");
-            return;
-        }
-
-        String featureId = args[0];
-        if (featureId.equals(BluetoothSinkAudioPolicy.HFP_SET_SINK_AUDIO_POLICY_ID)) {
-            Log.i(TAG, "processAndroidAtFeature:"
-                    + BluetoothSinkAudioPolicy.HFP_SET_SINK_AUDIO_POLICY_ID + " supported");
-            setAudioPolicyRemoteSupported(true);
-        }
-    }
-
     // This method does not check for error condition (newState == prevState)
     private void broadcastConnectionState(BluetoothDevice device, int newState, int prevState) {
         logD("Connection state " + device + ": " + prevState + "->" + newState);
@@ -2263,7 +2226,7 @@ public class HeadsetClientStateMachine extends StateMachine {
 
     private String createMaskString(BluetoothSinkAudioPolicy policies) {
         StringBuilder mask = new StringBuilder();
-        mask.append(BluetoothSinkAudioPolicy.HFP_SET_SINK_AUDIO_POLICY_ID);
+        mask.append(Integer.toString(CALL_AUDIO_POLICY_FEATURE_ID));
         mask.append("," + policies.getCallEstablishPolicy());
         mask.append("," + policies.getActiveDevicePolicyAfterConnection());
         mask.append("," + policies.getInBandRingtonePolicy());
diff --git a/android/app/src/com/android/bluetooth/hfpclient/VendorCommandResponseProcessor.java b/android/app/src/com/android/bluetooth/hfpclient/VendorCommandResponseProcessor.java
index f1a39d289617ddbc591ca0242eb246a066c8bb26..a35f42f13d34ce5b5f8c7c1a233f23e67a3d0921 100644
--- a/android/app/src/com/android/bluetooth/hfpclient/VendorCommandResponseProcessor.java
+++ b/android/app/src/com/android/bluetooth/hfpclient/VendorCommandResponseProcessor.java
@@ -127,7 +127,12 @@ class VendorCommandResponseProcessor {
         return true;
     }
 
-    private String getVendorIdFromAtCommand(String atString) {
+    public boolean processEvent(String atString, BluetoothDevice device) {
+        if (device == null) {
+            Log.w(TAG, "processVendorEvent device is null");
+            return false;
+        }
+
         // Get event code
         int indexOfEqual = atString.indexOf('=');
         int indexOfColon = atString.indexOf(':');
@@ -143,29 +148,13 @@ class VendorCommandResponseProcessor {
         // replace all white spaces
         eventCode = eventCode.replaceAll("\\s+", "");
 
-        return eventCode;
-    }
-
-    public boolean isAndroidAtCommand(String atString) {
-        String eventCode = getVendorIdFromAtCommand(atString);
-        Integer vendorId = SUPPORTED_VENDOR_EVENTS.get(eventCode);
-        if (vendorId == null) {
-            return false;
-        }
-        return vendorId == BluetoothAssignedNumbers.GOOGLE;
-    }
-
-    public boolean processEvent(String atString, BluetoothDevice device) {
-        if (device == null) {
-            Log.w(TAG, "processVendorEvent device is null");
-            return false;
-        }
-
-        String eventCode = getVendorIdFromAtCommand(atString);
         Integer vendorId = SUPPORTED_VENDOR_EVENTS.get(eventCode);
         if (vendorId == null) {
             Log.e(TAG, "Invalid response: " + atString + ". " + eventCode);
             return false;
+        } else if (vendorId == BluetoothAssignedNumbers.GOOGLE) {
+            Log.i(TAG, "received +ANDROID event. Setting Audio policy to true");
+            mService.setAudioPolicyRemoteSupported(device, true);
         } else {
             broadcastVendorSpecificEventIntent(vendorId, eventCode, atString, device);
             logD("process vendor event " + vendorId + ", " + eventCode + ", "
diff --git a/android/app/tests/unit/src/com/android/bluetooth/hfp/HeadsetStateMachineTest.java b/android/app/tests/unit/src/com/android/bluetooth/hfp/HeadsetStateMachineTest.java
index 2a9648920e216883a4a1056827b8ad1dc5fc06ce..ca3067d8b3dd5eba7c0799db29ea5a9f9a0f9236 100644
--- a/android/app/tests/unit/src/com/android/bluetooth/hfp/HeadsetStateMachineTest.java
+++ b/android/app/tests/unit/src/com/android/bluetooth/hfp/HeadsetStateMachineTest.java
@@ -1439,118 +1439,18 @@ public class HeadsetStateMachineTest {
     /**
      * A test to validate received Android AT commands and processing
      */
+    @Ignore("b/275668166")
     @Test
-    public void testCheckAndProcessAndroidAt() {
-        // Commands that will be handled
-        Assert.assertTrue(mHeadsetStateMachine.checkAndProcessAndroidAt(
-            "+ANDROID=?" , mTestDevice));
-        verify(mNativeInterface, timeout(ASYNC_CALL_TIMEOUT_MILLIS).times(1)).atResponseCode(
-                mTestDevice, HeadsetHalConstants.AT_RESPONSE_OK, 0);
-        Assert.assertTrue(mHeadsetStateMachine.checkAndProcessAndroidAt(
-            "+ANDROID=SINKAUDIOPOLICY,1,1,1" , mTestDevice));
-        verify(mNativeInterface, timeout(ASYNC_CALL_TIMEOUT_MILLIS).times(2)).atResponseCode(
-                mTestDevice, HeadsetHalConstants.AT_RESPONSE_OK, 0);
-        Assert.assertTrue(mHeadsetStateMachine.checkAndProcessAndroidAt(
-            "+ANDROID=SINKAUDIOPOLICY,100,100,100" , mTestDevice));
-        verify(mNativeInterface, timeout(ASYNC_CALL_TIMEOUT_MILLIS).times(3)).atResponseCode(
-                mTestDevice, HeadsetHalConstants.AT_RESPONSE_OK, 0);
-        Assert.assertTrue(mHeadsetStateMachine.checkAndProcessAndroidAt(
-            "+ANDROID=SINKAUDIOPOLICY,1,2,3,4,5" , mTestDevice));
-        verify(mNativeInterface, timeout(ASYNC_CALL_TIMEOUT_MILLIS).times(1)).atResponseCode(
-                mTestDevice, HeadsetHalConstants.AT_RESPONSE_ERROR, 0);
-
-        // Commands with correct format but will not be handled
-        Assert.assertFalse(mHeadsetStateMachine.checkAndProcessAndroidAt(
-            "+ANDROID=" , mTestDevice));
-        Assert.assertFalse(mHeadsetStateMachine.checkAndProcessAndroidAt(
-            "+ANDROID: PROBE,1,\"`AB\"" , mTestDevice));
-        Assert.assertFalse(mHeadsetStateMachine.checkAndProcessAndroidAt(
-            "+ANDROID= PROBE,1,\"`AB\"" , mTestDevice));
-        Assert.assertFalse(mHeadsetStateMachine.checkAndProcessAndroidAt(
-            "AT+ANDROID=PROBE,1,1,\"PQGHRSBCTU__\"" , mTestDevice));
-
-        // Incorrect format AT command
-        Assert.assertFalse(mHeadsetStateMachine.checkAndProcessAndroidAt(
-            "RANDOM FORMAT" , mTestDevice));
-
-        // Check no any AT result was sent for the failed ones
-        verify(mNativeInterface, timeout(ASYNC_CALL_TIMEOUT_MILLIS).times(3)).atResponseCode(
-                mTestDevice, HeadsetHalConstants.AT_RESPONSE_OK, 0);
-        verify(mNativeInterface, timeout(ASYNC_CALL_TIMEOUT_MILLIS).times(1)).atResponseCode(
-                mTestDevice, HeadsetHalConstants.AT_RESPONSE_ERROR, 0);
-    }
-
-    @Test
-    public void testCheckAndProcessAndroidAt_replyAndroidAtFeatureRequest() {
-        // Commands that will be handled
-        Assert.assertTrue(mHeadsetStateMachine.checkAndProcessAndroidAt(
-            "+ANDROID=?" , mTestDevice));
-        verify(mNativeInterface, timeout(ASYNC_CALL_TIMEOUT_MILLIS)).atResponseString(
-                mTestDevice, "+ANDROID: (SINKAUDIOPOLICY)");
-        verify(mNativeInterface, timeout(ASYNC_CALL_TIMEOUT_MILLIS)).atResponseCode(
-                mTestDevice, HeadsetHalConstants.AT_RESPONSE_OK, 0);
-    }
-
-    /**
-     * A end to end test to validate received Android AT commands and processing
-     */
-    @Test
-    public void testCehckAndProcessAndroidAtFromStateMachine() {
-        // setAudioPolicyMetadata is invoked in HeadsetStateMachine.init() so start from 1
-        int expectCallTimes = 1;
-
-        // setup Audio Policy Feature
+    public void testProcessAndroidAt() {
         setUpConnectedState();
-
+        // setup Audio Policy Feature
         setUpAudioPolicy();
         // receive and set android policy
         mHeadsetStateMachine.sendMessage(HeadsetStateMachine.STACK_EVENT,
                 new HeadsetStackEvent(HeadsetStackEvent.EVENT_TYPE_UNKNOWN_AT,
-                        "+ANDROID=SINKAUDIOPOLICY,1,1,1", mTestDevice));
-        expectCallTimes++;
-        verify(mDatabaseManager, timeout(ASYNC_CALL_TIMEOUT_MILLIS).times(expectCallTimes))
+                        "+ANDROID=1,1,1,1", mTestDevice));
+        verify(mDatabaseManager, timeout(ASYNC_CALL_TIMEOUT_MILLIS))
                 .setAudioPolicyMetadata(anyObject(), anyObject());
-
-        // receive and not set android policy
-        mHeadsetStateMachine.sendMessage(HeadsetStateMachine.STACK_EVENT,
-                new HeadsetStackEvent(HeadsetStackEvent.EVENT_TYPE_UNKNOWN_AT,
-                        "AT+ANDROID=PROBE,1,1,\"PQGHRSBCTU__\"", mTestDevice));
-        verify(mDatabaseManager, timeout(ASYNC_CALL_TIMEOUT_MILLIS).times(expectCallTimes))
-                .setAudioPolicyMetadata(anyObject(), anyObject());
-    }
-
-    /**
-     * A test to verify whether the sink audio policy command is valid
-     */
-    @Test
-    public void testProcessAndroidAtSinkAudioPolicy() {
-        // expected format
-        Assert.assertTrue(setSinkAudioPolicyArgs("SINKAUDIOPOLICY,0,0,0", mTestDevice));
-        Assert.assertTrue(setSinkAudioPolicyArgs("SINKAUDIOPOLICY,0,0,1", mTestDevice));
-        Assert.assertTrue(setSinkAudioPolicyArgs("SINKAUDIOPOLICY,0,1,0", mTestDevice));
-        Assert.assertTrue(setSinkAudioPolicyArgs("SINKAUDIOPOLICY,1,0,0", mTestDevice));
-        Assert.assertTrue(setSinkAudioPolicyArgs("SINKAUDIOPOLICY,1,1,1", mTestDevice));
-
-        // invalid format
-        Assert.assertFalse(setSinkAudioPolicyArgs("SINKAUDIOPOLICY,0", mTestDevice));
-        Assert.assertFalse(setSinkAudioPolicyArgs("SINKAUDIOPOLICY,0,0", mTestDevice));
-        Assert.assertFalse(setSinkAudioPolicyArgs("SINKAUDIOPOLICY,0,0,0,0", mTestDevice));
-        Assert.assertFalse(setSinkAudioPolicyArgs("SINKAUDIOPOLICY,NOT,INT,TYPE", mTestDevice));
-        Assert.assertFalse(setSinkAudioPolicyArgs("RANDOM,VALUE-#$%,*(&^", mTestDevice));
-
-        // wrong device
-        BluetoothDevice device = mAdapter.getRemoteDevice("01:01:01:01:01:01");
-        Assert.assertFalse(setSinkAudioPolicyArgs("SINKAUDIOPOLICY,0,0,0", device));
-    }
-
-    /**
-     * set sink audio policy
-     * @param arg body of the AT command
-     * @return the result from processAndroidAtSinkAudioPolicy
-     */
-    private boolean setSinkAudioPolicyArgs(String arg, BluetoothDevice device) {
-        Object[] args = HeadsetStateMachine.generateArgs(arg);
-        return mHeadsetStateMachine.processAndroidAtSinkAudioPolicy(args, device);
     }
 
     /**
diff --git a/android/app/tests/unit/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachineTest.java b/android/app/tests/unit/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachineTest.java
index bfda3f757bb72d7a29c8e5d46daaa2fd71f75d02..72b104ad5c7b77af42aa6ee2de1c5c00a7c19535 100644
--- a/android/app/tests/unit/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachineTest.java
+++ b/android/app/tests/unit/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachineTest.java
@@ -293,61 +293,6 @@ public class HeadsetClientStateMachineTest {
         verify(mHeadsetService).updateInbandRinging(eq(mTestDevice), eq(false));
     }
 
-    @Test
-    public void testProcessAndroidSlcCommand() {
-        initToConnectedState();
-
-        // True on correct AT command and BluetothDevice
-        Assert.assertTrue(mHeadsetClientStateMachine.processAndroidSlcCommand(
-                "+ANDROID: (SINKAUDIOPOLICY)", mTestDevice));
-        Assert.assertTrue(mHeadsetClientStateMachine.processAndroidSlcCommand(
-                "+ANDROID: ()", mTestDevice));
-        Assert.assertTrue(mHeadsetClientStateMachine.processAndroidSlcCommand(
-                "+ANDROID: (,,,)", mTestDevice));
-        Assert.assertTrue(mHeadsetClientStateMachine.processAndroidSlcCommand(
-                "+ANDROID: (SINKAUDIOPOLICY),(OTHERFEATURE)",  mTestDevice));
-        Assert.assertTrue(mHeadsetClientStateMachine.processAndroidSlcCommand(
-                "+ANDROID: (SINKAUDIOPOLICY),(OTHERFEATURE,1,2,3),(1,2,3)", mTestDevice));
-        Assert.assertTrue(mHeadsetClientStateMachine.processAndroidSlcCommand(
-                "+ANDROID: 123", mTestDevice));
-        Assert.assertTrue(mHeadsetClientStateMachine.processAndroidSlcCommand(
-                "+ANDROID: ", mTestDevice));
-
-        // False on incorrect AT command format
-        Assert.assertFalse(mHeadsetClientStateMachine.processAndroidSlcCommand(
-                "+ANDROID= (SINKAUDIOPOLICY)", mTestDevice));
-        Assert.assertFalse(mHeadsetClientStateMachine.processAndroidSlcCommand(
-                "RANDOM ^%$# STRING", mTestDevice));
-        Assert.assertFalse(mHeadsetClientStateMachine.processAndroidSlcCommand("", mTestDevice));
-
-        // False on incorrect BluetoothDevice
-        Assert.assertFalse(mHeadsetClientStateMachine.processAndroidSlcCommand(
-                "+ANDROID: (SINKAUDIOPOLICY)", mAdapter.getRemoteDevice("05:04:01:02:03:00")));
-    }
-
-    @Test
-    public void testProcessAndroidSlcCommand_checkSinkAudioPolicy() {
-        initToConnectedState();
-
-        mHeadsetClientStateMachine.setAudioPolicyRemoteSupported(false);
-        Assert.assertFalse(mHeadsetClientStateMachine.processAndroidSlcCommand(
-                "RANDOM ^%$# STRING", mTestDevice));
-        Assert.assertEquals(BluetoothStatusCodes.FEATURE_NOT_SUPPORTED,
-                mHeadsetClientStateMachine.getAudioPolicyRemoteSupported());
-
-        mHeadsetClientStateMachine.setAudioPolicyRemoteSupported(false);
-        Assert.assertFalse(mHeadsetClientStateMachine.processAndroidSlcCommand(
-                "+ANDROID= (SINKAUDIOPOLICY)", mTestDevice));
-        Assert.assertEquals(BluetoothStatusCodes.FEATURE_NOT_SUPPORTED,
-                mHeadsetClientStateMachine.getAudioPolicyRemoteSupported());
-
-        mHeadsetClientStateMachine.setAudioPolicyRemoteSupported(false);
-        Assert.assertTrue(mHeadsetClientStateMachine.processAndroidSlcCommand(
-                "+ANDROID: (SINKAUDIOPOLICY)", mTestDevice));
-        Assert.assertEquals(BluetoothStatusCodes.FEATURE_SUPPORTED,
-                mHeadsetClientStateMachine.getAudioPolicyRemoteSupported());
-    }
-
     /**
      * Test that In Band Ringtone information is relayed from phone.
      */
@@ -529,32 +474,19 @@ public class HeadsetClientStateMachineTest {
     private void setUpAndroidAt(boolean androidAtSupported) {
         verify(mNativeInterface).sendAndroidAt(mTestDevice, "+ANDROID=?");
         if (androidAtSupported) {
-            // inject Android AT features
             StackEvent unknownEvt = new StackEvent(StackEvent.EVENT_TYPE_UNKNOWN_EVENT);
-            unknownEvt.valueString = "+ANDROID: (SINKAUDIOPOLICY)";
+            unknownEvt.valueString = "+ANDROID: 1";
             unknownEvt.device = mTestDevice;
             mHeadsetClientStateMachine.sendMessage(StackEvent.STACK_EVENT, unknownEvt);
             TestUtils.waitForLooperToFinishScheduledTask(mHandlerThread.getLooper());
-
-            // receive CMD_RESULT OK after the Anroid AT command from remote
-            StackEvent cmdResEvt = new StackEvent(StackEvent.EVENT_TYPE_CMD_RESULT);
-            cmdResEvt.valueInt = StackEvent.CMD_RESULT_TYPE_OK;
-            cmdResEvt.device = mTestDevice;
-            mHeadsetClientStateMachine.sendMessage(StackEvent.STACK_EVENT, cmdResEvt);
-            TestUtils.waitForLooperToFinishScheduledTask(mHandlerThread.getLooper());
-
-            Assert.assertEquals(BluetoothStatusCodes.FEATURE_SUPPORTED,
-                    mHeadsetClientStateMachine.getAudioPolicyRemoteSupported());
+            verify(mHeadsetClientService).setAudioPolicyRemoteSupported(mTestDevice, true);
+            mHeadsetClientStateMachine.setAudioPolicyRemoteSupported(true);
         } else {
             // receive CMD_RESULT CME_ERROR due to remote not supporting Android AT
             StackEvent cmdResEvt = new StackEvent(StackEvent.EVENT_TYPE_CMD_RESULT);
             cmdResEvt.valueInt = StackEvent.CMD_RESULT_TYPE_CME_ERROR;
             cmdResEvt.device = mTestDevice;
             mHeadsetClientStateMachine.sendMessage(StackEvent.STACK_EVENT, cmdResEvt);
-            TestUtils.waitForLooperToFinishScheduledTask(mHandlerThread.getLooper());
-
-            Assert.assertEquals(BluetoothStatusCodes.FEATURE_NOT_SUPPORTED,
-                    mHeadsetClientStateMachine.getAudioPolicyRemoteSupported());
         }
     }
 
@@ -918,24 +850,23 @@ public class HeadsetClientStateMachineTest {
         // Expect: Should not send +ANDROID to remote
         mHeadsetClientStateMachine.mCurrentDevice = mTestDevice;
         mHeadsetClientStateMachine.setAudioPolicyRemoteSupported(false);
-        verify(mNativeInterface, never()).sendAndroidAt(mTestDevice,
-                "+ANDROID=SINKAUDIOPOLICY,1,0,0");
+        verify(mNativeInterface, never()).sendAndroidAt(mTestDevice, "+ANDROID=1,1,0,0");
 
         // Case 2: if remote is supported and mForceSetAudioPolicyProperty is false
-        // Expect: Should send +ANDROID=SINKAUDIOPOLICY,1,0,0 to remote
+        // Expect: Should send +ANDROID:1,1,0,0 to remote
         mHeadsetClientStateMachine.setAudioPolicyRemoteSupported(true);
         mHeadsetClientStateMachine.setForceSetAudioPolicyProperty(false);
         mHeadsetClientStateMachine.setAudioRouteAllowed(true);
-        verify(mNativeInterface).sendAndroidAt(mTestDevice, "+ANDROID=SINKAUDIOPOLICY,1,0,0");
+        verify(mNativeInterface).sendAndroidAt(mTestDevice, "+ANDROID=1,1,0,0");
 
         mHeadsetClientStateMachine.setAudioRouteAllowed(false);
-        verify(mNativeInterface).sendAndroidAt(mTestDevice, "+ANDROID=SINKAUDIOPOLICY,2,0,0");
+        verify(mNativeInterface).sendAndroidAt(mTestDevice, "+ANDROID=1,2,0,0");
 
         // Case 3: if remote is supported and mForceSetAudioPolicyProperty is true
-        // Expect: Should send +ANDROID=SINKAUDIOPOLICY,1,2,1 to remote
+        // Expect: Should send +ANDROID:1,1,2,1 to remote
         mHeadsetClientStateMachine.setForceSetAudioPolicyProperty(true);
         mHeadsetClientStateMachine.setAudioRouteAllowed(true);
-        verify(mNativeInterface).sendAndroidAt(mTestDevice, "+ANDROID=SINKAUDIOPOLICY,1,2,1");
+        verify(mNativeInterface).sendAndroidAt(mTestDevice, "+ANDROID=1,1,2,1");
     }
 
     @Test
@@ -1175,8 +1106,7 @@ public class HeadsetClientStateMachineTest {
 
         BluetoothSinkAudioPolicy dummyAudioPolicy = new BluetoothSinkAudioPolicy.Builder().build();
         mHeadsetClientStateMachine.setAudioPolicy(dummyAudioPolicy);
-        verify(mNativeInterface, never()).sendAndroidAt(mTestDevice,
-                "+ANDROID=SINKAUDIOPOLICY,0,0,0");
+        verify(mNativeInterface, never()).sendAndroidAt(mTestDevice, "+ANDROID:1,0,0,0");
     }
 
     @SmallTest
@@ -1200,14 +1130,13 @@ public class HeadsetClientStateMachineTest {
         // Test if not support audio policy feature
         mHeadsetClientStateMachine.setAudioPolicyRemoteSupported(false);
         mHeadsetClientStateMachine.setAudioPolicy(dummyAudioPolicy);
-        verify(mNativeInterface, never()).sendAndroidAt(mTestDevice,
-                "+ANDROID=SINKAUDIOPOLICY,1,2,1");
+        verify(mNativeInterface, never()).sendAndroidAt(mTestDevice, "+ANDROID=1,1,2,1");
         Assert.assertEquals(0, mHeadsetClientStateMachine.mQueuedActions.size());
 
         // Test setAudioPolicy
         mHeadsetClientStateMachine.setAudioPolicyRemoteSupported(true);
         mHeadsetClientStateMachine.setAudioPolicy(dummyAudioPolicy);
-        verify(mNativeInterface).sendAndroidAt(mTestDevice, "+ANDROID=SINKAUDIOPOLICY,1,2,1");
+        verify(mNativeInterface).sendAndroidAt(mTestDevice, "+ANDROID=1,1,2,1");
         Assert.assertEquals(1, mHeadsetClientStateMachine.mQueuedActions.size());
         mHeadsetClientStateMachine.mQueuedActions.clear();
 
@@ -1337,7 +1266,7 @@ public class HeadsetClientStateMachineTest {
 
     @Test
     public void testProcessStackEvent_Unknown_onConnectingState() {
-        String atCommand = "+ANDROID: (SINKAUDIOPOLICY)";
+        String atCommand = "+ANDROID: 1";
 
         initToConnectingState();
         StackEvent event = new StackEvent(StackEvent.EVENT_TYPE_UNKNOWN_EVENT);
@@ -1499,7 +1428,7 @@ public class HeadsetClientStateMachineTest {
     }
 
     private void initToConnectedState() {
-        String atCommand = "+ANDROID: (SINKAUDIOPOLICY)";
+        String atCommand = "+ANDROID: 1";
         initToConnectingState();
         StackEvent event = new StackEvent(StackEvent.EVENT_TYPE_UNKNOWN_EVENT);
         event.valueString = atCommand;
diff --git a/framework/java/android/bluetooth/BluetoothSinkAudioPolicy.java b/framework/java/android/bluetooth/BluetoothSinkAudioPolicy.java
index db44bc2e532d041579e1e255a3c512452997c323..4b2f852e2f589fe8f73de1f7b3e1f444a50ae212 100644
--- a/framework/java/android/bluetooth/BluetoothSinkAudioPolicy.java
+++ b/framework/java/android/bluetooth/BluetoothSinkAudioPolicy.java
@@ -107,12 +107,6 @@ public final class BluetoothSinkAudioPolicy implements Parcelable {
     @SystemApi
     public static final int POLICY_NOT_ALLOWED = 2;
 
-    /**
-     * The feature ID used in the HFP AT command.
-     * @hide
-     */
-    public static final String HFP_SET_SINK_AUDIO_POLICY_ID = "SINKAUDIOPOLICY";
-
     @AudioPolicyValues private final int mCallEstablishPolicy;
     @AudioPolicyValues private final int mConnectingTimePolicy;
     @AudioPolicyValues private final int mInBandRingtonePolicy;