From 1135457a3d656057fc65effd706ae238a5f99a50 Mon Sep 17 00:00:00 2001 From: Paul McLean Date: Fri, 7 Aug 2015 12:50:48 -0600 Subject: [PATCH] Filtering Remote-Submix and Back-mic devices from AudioDeviceInfo API. Bug: 22729461 Change-Id: Ie581c385af2be16e61fcab5993391ef42f82a7d8 --- media/java/android/media/AudioManager.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java index 5290cacb300ce..875e7165fa810 100644 --- a/media/java/android/media/AudioManager.java +++ b/media/java/android/media/AudioManager.java @@ -3757,6 +3757,12 @@ public class AudioManager { port.role() == AudioPort.ROLE_SOURCE && (flags & GET_DEVICES_INPUTS) != 0; } + private static boolean checkTypes(AudioDevicePort port) { + return AudioDeviceInfo.convertInternalDeviceToDeviceType(port.type()) != + AudioDeviceInfo.TYPE_UNKNOWN && + port.type() != AudioSystem.DEVICE_IN_BACK_MIC; + } + /** * Returns an array of {@link AudioDeviceInfo} objects corresponding to the audio devices * currently connected to the system and meeting the criteria specified in the @@ -3779,7 +3785,7 @@ public class AudioManager { // figure out how many AudioDeviceInfo we need space for... int numRecs = 0; for (AudioDevicePort port : ports) { - if (checkFlags(port, flags)) { + if (checkTypes(port) && checkFlags(port, flags)) { numRecs++; } } @@ -3788,7 +3794,7 @@ public class AudioManager { AudioDeviceInfo[] deviceList = new AudioDeviceInfo[numRecs]; int slot = 0; for (AudioDevicePort port : ports) { - if (checkFlags(port, flags)) { + if (checkTypes(port) && checkFlags(port, flags)) { deviceList[slot++] = new AudioDeviceInfo(port); } }