Loading media/java/android/media/AudioManager.java +0 −45 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAUL import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_AUDIO; import static android.content.Context.DEVICE_ID_DEFAULT; import static android.media.audio.Flags.autoPublicVolumeApiHardening; import static android.media.audio.Flags.automaticBtDeviceType; import static android.media.audio.Flags.cacheGetStreamMinMaxVolume; import static android.media.audio.Flags.cacheGetStreamVolume; import static android.media.audio.Flags.FLAG_DEPRECATE_STREAM_BT_SCO; Loading Loading @@ -7454,41 +7453,6 @@ public class AudioManager { } } /** * @hide * Sets the audio device type of a Bluetooth device given its MAC address */ @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) public void setBluetoothAudioDeviceCategory_legacy(@NonNull String address, boolean isBle, @AudioDeviceCategory int btAudioDeviceType) { if (automaticBtDeviceType()) { // do nothing return; } try { getService().setBluetoothAudioDeviceCategory_legacy(address, isBle, btAudioDeviceType); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * @hide * Gets the audio device type of a Bluetooth device given its MAC address */ @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) @AudioDeviceCategory public int getBluetoothAudioDeviceCategory_legacy(@NonNull String address, boolean isBle) { if (automaticBtDeviceType()) { return AUDIO_DEVICE_CATEGORY_UNKNOWN; } try { return getService().getBluetoothAudioDeviceCategory_legacy(address, isBle); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * @hide * Sets the audio device type of a Bluetooth device given its MAC address Loading @@ -7500,9 +7464,6 @@ public class AudioManager { @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) public boolean setBluetoothAudioDeviceCategory(@NonNull String address, @AudioDeviceCategory int btAudioDeviceCategory) { if (!automaticBtDeviceType()) { return false; } try { return getService().setBluetoothAudioDeviceCategory(address, btAudioDeviceCategory); } catch (RemoteException e) { Loading @@ -7517,9 +7478,6 @@ public class AudioManager { @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) @AudioDeviceCategory public int getBluetoothAudioDeviceCategory(@NonNull String address) { if (!automaticBtDeviceType()) { return AUDIO_DEVICE_CATEGORY_UNKNOWN; } try { return getService().getBluetoothAudioDeviceCategory(address); } catch (RemoteException e) { Loading @@ -7534,9 +7492,6 @@ public class AudioManager { */ @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) public boolean isBluetoothAudioDeviceCategoryFixed(@NonNull String address) { if (!automaticBtDeviceType()) { return false; } try { return getService().isBluetoothAudioDeviceCategoryFixed(address); } catch (RemoteException e) { Loading media/java/android/media/IAudioService.aidl +0 −7 Original line number Diff line number Diff line Loading @@ -364,13 +364,6 @@ interface IAudioService { @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED") oneway void setCsdAsAFeatureEnabled(boolean csdToggleValue); @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED") oneway void setBluetoothAudioDeviceCategory_legacy(in String address, boolean isBle, int deviceCategory); @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED") int getBluetoothAudioDeviceCategory_legacy(in String address, boolean isBle); @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED") boolean setBluetoothAudioDeviceCategory(in String address, int deviceCategory); Loading services/core/java/com/android/server/audio/AdiDeviceState.java +0 −10 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.server.audio; import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_UNKNOWN; import static android.media.AudioSystem.DEVICE_NONE; import static android.media.AudioSystem.isBluetoothDevice; import static android.media.audio.Flags.automaticBtDeviceType; import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE; Loading Loading @@ -146,20 +145,11 @@ public final class AdiDeviceState { } public synchronized boolean isBtDeviceCategoryFixed() { if (!automaticBtDeviceType()) { // do nothing return false; } updateAudioDeviceCategory(); return mAutoBtCategorySet; } public synchronized boolean updateAudioDeviceCategory() { if (!automaticBtDeviceType()) { // do nothing return false; } if (!isBluetoothDevice(mInternalDeviceType)) { return false; } Loading services/core/java/com/android/server/audio/AudioDeviceInventory.java +5 −11 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import static android.media.AudioSystem.isBluetoothDevice; import static android.media.AudioSystem.isBluetoothLeOutDevice; import static android.media.AudioSystem.isBluetoothOutDevice; import static android.media.AudioSystem.isBluetoothScoOutDevice; import static android.media.audio.Flags.automaticBtDeviceType; import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE; import static com.android.media.audio.Flags.asDeviceConnectionFailure; Loading Loading @@ -206,11 +205,10 @@ public class AudioDeviceInventory { AdiDeviceState deviceState, boolean syncInventory) { AtomicBoolean updatedCategory = new AtomicBoolean(false); synchronized (mDeviceInventoryLock) { if (automaticBtDeviceType()) { if (deviceState.updateAudioDeviceCategory()) { updatedCategory.set(true); } } deviceState = mDeviceInventory.merge(deviceState.getDeviceId(), deviceState, (oldState, newState) -> { if (oldState.getAudioDeviceCategory() Loading Loading @@ -305,12 +303,8 @@ public class AudioDeviceInventory { */ @GuardedBy({"mDevicesLock", "mDeviceInventoryLock"}) void onSynchronizeAdiDeviceInInventory_l(AdiDeviceState updatedDevice) { boolean found = false; found |= synchronizeBleDeviceInInventory(updatedDevice); if (automaticBtDeviceType()) { found |= synchronizeDeviceProfilesInInventory(updatedDevice); } if (found) { if (synchronizeBleDeviceInInventory(updatedDevice) || synchronizeDeviceProfilesInInventory(updatedDevice)) { mDeviceBroker.postPersistAudioDeviceSettings(); } } Loading services/core/java/com/android/server/audio/AudioService.java +1 −76 Original line number Diff line number Diff line Loading @@ -35,20 +35,13 @@ import static android.content.Intent.ACTION_PACKAGE_ADDED; import static android.content.Intent.ACTION_PACKAGE_REMOVED; import static android.content.Intent.EXTRA_ARCHIVAL; import static android.content.Intent.EXTRA_REPLACING; import static android.media.AudioDeviceInfo.TYPE_BLE_HEADSET; import static android.media.AudioDeviceInfo.TYPE_BLE_SPEAKER; import static android.media.AudioDeviceInfo.TYPE_BLUETOOTH_A2DP; import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_HEADPHONES; import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_UNKNOWN; import static android.media.AudioManager.DEVICE_OUT_BLE_HEADSET; import static android.media.AudioManager.DEVICE_OUT_BLE_SPEAKER; import static android.media.AudioManager.DEVICE_OUT_BLUETOOTH_A2DP; import static android.media.AudioManager.RINGER_MODE_NORMAL; import static android.media.AudioManager.RINGER_MODE_SILENT; import static android.media.AudioManager.RINGER_MODE_VIBRATE; import static android.media.AudioManager.STREAM_SYSTEM; import static android.media.audio.Flags.autoPublicVolumeApiHardening; import static android.media.audio.Flags.automaticBtDeviceType; import static android.media.audio.Flags.cacheGetStreamMinMaxVolume; import static android.media.audio.Flags.cacheGetStreamVolume; import static android.media.audio.Flags.concurrentAudioRecordBypassPermission; Loading Loading @@ -4970,8 +4963,7 @@ public class AudioService extends IAudioService.Stub + asDeviceConnectionFailure()); pw.println("\tandroid.media.audio.autoPublicVolumeApiHardening:" + autoPublicVolumeApiHardening()); pw.println("\tandroid.media.audio.automaticBtDeviceType:" + automaticBtDeviceType()); pw.println("\tandroid.media.audio.automaticBtDeviceType - EOL"); pw.println("\tandroid.media.audio.featureSpatialAudioHeadtrackingLowLatency:" + featureSpatialAudioHeadtrackingLowLatency()); pw.println("\tandroid.media.audio.focusFreezeTestApi:" Loading Loading @@ -12355,72 +12347,11 @@ public class AudioService extends IAudioService.Stub mSoundDoseHelper.setCsdAsAFeatureEnabled(csdToggleValue); } @Override @android.annotation.EnforcePermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) public void setBluetoothAudioDeviceCategory_legacy(@NonNull String address, boolean isBle, @AudioDeviceCategory int btAudioDeviceCategory) { super.setBluetoothAudioDeviceCategory_legacy_enforcePermission(); if (automaticBtDeviceType()) { // do nothing return; } final String addr = Objects.requireNonNull(address); AdiDeviceState deviceState = mDeviceBroker.findBtDeviceStateForAddress(addr, (isBle ? AudioSystem.DEVICE_OUT_BLE_HEADSET : AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP)); int internalType = !isBle ? DEVICE_OUT_BLUETOOTH_A2DP : ((btAudioDeviceCategory == AUDIO_DEVICE_CATEGORY_HEADPHONES) ? DEVICE_OUT_BLE_HEADSET : DEVICE_OUT_BLE_SPEAKER); int deviceType = !isBle ? TYPE_BLUETOOTH_A2DP : ((btAudioDeviceCategory == AUDIO_DEVICE_CATEGORY_HEADPHONES) ? TYPE_BLE_HEADSET : TYPE_BLE_SPEAKER); if (deviceState == null) { deviceState = new AdiDeviceState(deviceType, internalType, addr); } deviceState.setAudioDeviceCategory(btAudioDeviceCategory); mDeviceBroker.addOrUpdateBtAudioDeviceCategoryInInventory( deviceState, true /*syncInventory*/); mDeviceBroker.postPersistAudioDeviceSettings(); mSpatializerHelper.refreshDevice(deviceState.getAudioDeviceAttributes(), false /* initState */); mSoundDoseHelper.setAudioDeviceCategory(addr, internalType, btAudioDeviceCategory == AUDIO_DEVICE_CATEGORY_HEADPHONES); } @Override @android.annotation.EnforcePermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) @AudioDeviceCategory public int getBluetoothAudioDeviceCategory_legacy(@NonNull String address, boolean isBle) { super.getBluetoothAudioDeviceCategory_legacy_enforcePermission(); if (automaticBtDeviceType()) { return AUDIO_DEVICE_CATEGORY_UNKNOWN; } final AdiDeviceState deviceState = mDeviceBroker.findBtDeviceStateForAddress( Objects.requireNonNull(address), (isBle ? AudioSystem.DEVICE_OUT_BLE_HEADSET : AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP)); if (deviceState == null) { return AUDIO_DEVICE_CATEGORY_UNKNOWN; } return deviceState.getAudioDeviceCategory(); } @Override @android.annotation.EnforcePermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) public boolean setBluetoothAudioDeviceCategory(@NonNull String address, @AudioDeviceCategory int btAudioDeviceCategory) { super.setBluetoothAudioDeviceCategory_enforcePermission(); if (!automaticBtDeviceType()) { return false; } final String addr = Objects.requireNonNull(address); if (isBluetoothAudioDeviceCategoryFixed(addr)) { Loading @@ -12439,9 +12370,6 @@ public class AudioService extends IAudioService.Stub @AudioDeviceCategory public int getBluetoothAudioDeviceCategory(@NonNull String address) { super.getBluetoothAudioDeviceCategory_enforcePermission(); if (!automaticBtDeviceType()) { return AUDIO_DEVICE_CATEGORY_UNKNOWN; } return mDeviceBroker.getAndUpdateBtAdiDeviceStateCategoryForAddress(address); } Loading @@ -12450,9 +12378,6 @@ public class AudioService extends IAudioService.Stub @android.annotation.EnforcePermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) public boolean isBluetoothAudioDeviceCategoryFixed(@NonNull String address) { super.isBluetoothAudioDeviceCategoryFixed_enforcePermission(); if (!automaticBtDeviceType()) { return false; } return mDeviceBroker.isBluetoothAudioDeviceCategoryFixed(address); } Loading
media/java/android/media/AudioManager.java +0 −45 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAUL import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_AUDIO; import static android.content.Context.DEVICE_ID_DEFAULT; import static android.media.audio.Flags.autoPublicVolumeApiHardening; import static android.media.audio.Flags.automaticBtDeviceType; import static android.media.audio.Flags.cacheGetStreamMinMaxVolume; import static android.media.audio.Flags.cacheGetStreamVolume; import static android.media.audio.Flags.FLAG_DEPRECATE_STREAM_BT_SCO; Loading Loading @@ -7454,41 +7453,6 @@ public class AudioManager { } } /** * @hide * Sets the audio device type of a Bluetooth device given its MAC address */ @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) public void setBluetoothAudioDeviceCategory_legacy(@NonNull String address, boolean isBle, @AudioDeviceCategory int btAudioDeviceType) { if (automaticBtDeviceType()) { // do nothing return; } try { getService().setBluetoothAudioDeviceCategory_legacy(address, isBle, btAudioDeviceType); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * @hide * Gets the audio device type of a Bluetooth device given its MAC address */ @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) @AudioDeviceCategory public int getBluetoothAudioDeviceCategory_legacy(@NonNull String address, boolean isBle) { if (automaticBtDeviceType()) { return AUDIO_DEVICE_CATEGORY_UNKNOWN; } try { return getService().getBluetoothAudioDeviceCategory_legacy(address, isBle); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * @hide * Sets the audio device type of a Bluetooth device given its MAC address Loading @@ -7500,9 +7464,6 @@ public class AudioManager { @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) public boolean setBluetoothAudioDeviceCategory(@NonNull String address, @AudioDeviceCategory int btAudioDeviceCategory) { if (!automaticBtDeviceType()) { return false; } try { return getService().setBluetoothAudioDeviceCategory(address, btAudioDeviceCategory); } catch (RemoteException e) { Loading @@ -7517,9 +7478,6 @@ public class AudioManager { @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) @AudioDeviceCategory public int getBluetoothAudioDeviceCategory(@NonNull String address) { if (!automaticBtDeviceType()) { return AUDIO_DEVICE_CATEGORY_UNKNOWN; } try { return getService().getBluetoothAudioDeviceCategory(address); } catch (RemoteException e) { Loading @@ -7534,9 +7492,6 @@ public class AudioManager { */ @RequiresPermission(Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) public boolean isBluetoothAudioDeviceCategoryFixed(@NonNull String address) { if (!automaticBtDeviceType()) { return false; } try { return getService().isBluetoothAudioDeviceCategoryFixed(address); } catch (RemoteException e) { Loading
media/java/android/media/IAudioService.aidl +0 −7 Original line number Diff line number Diff line Loading @@ -364,13 +364,6 @@ interface IAudioService { @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED") oneway void setCsdAsAFeatureEnabled(boolean csdToggleValue); @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED") oneway void setBluetoothAudioDeviceCategory_legacy(in String address, boolean isBle, int deviceCategory); @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED") int getBluetoothAudioDeviceCategory_legacy(in String address, boolean isBle); @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED") boolean setBluetoothAudioDeviceCategory(in String address, int deviceCategory); Loading
services/core/java/com/android/server/audio/AdiDeviceState.java +0 −10 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.server.audio; import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_UNKNOWN; import static android.media.AudioSystem.DEVICE_NONE; import static android.media.AudioSystem.isBluetoothDevice; import static android.media.audio.Flags.automaticBtDeviceType; import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE; Loading Loading @@ -146,20 +145,11 @@ public final class AdiDeviceState { } public synchronized boolean isBtDeviceCategoryFixed() { if (!automaticBtDeviceType()) { // do nothing return false; } updateAudioDeviceCategory(); return mAutoBtCategorySet; } public synchronized boolean updateAudioDeviceCategory() { if (!automaticBtDeviceType()) { // do nothing return false; } if (!isBluetoothDevice(mInternalDeviceType)) { return false; } Loading
services/core/java/com/android/server/audio/AudioDeviceInventory.java +5 −11 Original line number Diff line number Diff line Loading @@ -28,7 +28,6 @@ import static android.media.AudioSystem.isBluetoothDevice; import static android.media.AudioSystem.isBluetoothLeOutDevice; import static android.media.AudioSystem.isBluetoothOutDevice; import static android.media.AudioSystem.isBluetoothScoOutDevice; import static android.media.audio.Flags.automaticBtDeviceType; import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE; import static com.android.media.audio.Flags.asDeviceConnectionFailure; Loading Loading @@ -206,11 +205,10 @@ public class AudioDeviceInventory { AdiDeviceState deviceState, boolean syncInventory) { AtomicBoolean updatedCategory = new AtomicBoolean(false); synchronized (mDeviceInventoryLock) { if (automaticBtDeviceType()) { if (deviceState.updateAudioDeviceCategory()) { updatedCategory.set(true); } } deviceState = mDeviceInventory.merge(deviceState.getDeviceId(), deviceState, (oldState, newState) -> { if (oldState.getAudioDeviceCategory() Loading Loading @@ -305,12 +303,8 @@ public class AudioDeviceInventory { */ @GuardedBy({"mDevicesLock", "mDeviceInventoryLock"}) void onSynchronizeAdiDeviceInInventory_l(AdiDeviceState updatedDevice) { boolean found = false; found |= synchronizeBleDeviceInInventory(updatedDevice); if (automaticBtDeviceType()) { found |= synchronizeDeviceProfilesInInventory(updatedDevice); } if (found) { if (synchronizeBleDeviceInInventory(updatedDevice) || synchronizeDeviceProfilesInInventory(updatedDevice)) { mDeviceBroker.postPersistAudioDeviceSettings(); } } Loading
services/core/java/com/android/server/audio/AudioService.java +1 −76 Original line number Diff line number Diff line Loading @@ -35,20 +35,13 @@ import static android.content.Intent.ACTION_PACKAGE_ADDED; import static android.content.Intent.ACTION_PACKAGE_REMOVED; import static android.content.Intent.EXTRA_ARCHIVAL; import static android.content.Intent.EXTRA_REPLACING; import static android.media.AudioDeviceInfo.TYPE_BLE_HEADSET; import static android.media.AudioDeviceInfo.TYPE_BLE_SPEAKER; import static android.media.AudioDeviceInfo.TYPE_BLUETOOTH_A2DP; import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_HEADPHONES; import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_UNKNOWN; import static android.media.AudioManager.DEVICE_OUT_BLE_HEADSET; import static android.media.AudioManager.DEVICE_OUT_BLE_SPEAKER; import static android.media.AudioManager.DEVICE_OUT_BLUETOOTH_A2DP; import static android.media.AudioManager.RINGER_MODE_NORMAL; import static android.media.AudioManager.RINGER_MODE_SILENT; import static android.media.AudioManager.RINGER_MODE_VIBRATE; import static android.media.AudioManager.STREAM_SYSTEM; import static android.media.audio.Flags.autoPublicVolumeApiHardening; import static android.media.audio.Flags.automaticBtDeviceType; import static android.media.audio.Flags.cacheGetStreamMinMaxVolume; import static android.media.audio.Flags.cacheGetStreamVolume; import static android.media.audio.Flags.concurrentAudioRecordBypassPermission; Loading Loading @@ -4970,8 +4963,7 @@ public class AudioService extends IAudioService.Stub + asDeviceConnectionFailure()); pw.println("\tandroid.media.audio.autoPublicVolumeApiHardening:" + autoPublicVolumeApiHardening()); pw.println("\tandroid.media.audio.automaticBtDeviceType:" + automaticBtDeviceType()); pw.println("\tandroid.media.audio.automaticBtDeviceType - EOL"); pw.println("\tandroid.media.audio.featureSpatialAudioHeadtrackingLowLatency:" + featureSpatialAudioHeadtrackingLowLatency()); pw.println("\tandroid.media.audio.focusFreezeTestApi:" Loading Loading @@ -12355,72 +12347,11 @@ public class AudioService extends IAudioService.Stub mSoundDoseHelper.setCsdAsAFeatureEnabled(csdToggleValue); } @Override @android.annotation.EnforcePermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) public void setBluetoothAudioDeviceCategory_legacy(@NonNull String address, boolean isBle, @AudioDeviceCategory int btAudioDeviceCategory) { super.setBluetoothAudioDeviceCategory_legacy_enforcePermission(); if (automaticBtDeviceType()) { // do nothing return; } final String addr = Objects.requireNonNull(address); AdiDeviceState deviceState = mDeviceBroker.findBtDeviceStateForAddress(addr, (isBle ? AudioSystem.DEVICE_OUT_BLE_HEADSET : AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP)); int internalType = !isBle ? DEVICE_OUT_BLUETOOTH_A2DP : ((btAudioDeviceCategory == AUDIO_DEVICE_CATEGORY_HEADPHONES) ? DEVICE_OUT_BLE_HEADSET : DEVICE_OUT_BLE_SPEAKER); int deviceType = !isBle ? TYPE_BLUETOOTH_A2DP : ((btAudioDeviceCategory == AUDIO_DEVICE_CATEGORY_HEADPHONES) ? TYPE_BLE_HEADSET : TYPE_BLE_SPEAKER); if (deviceState == null) { deviceState = new AdiDeviceState(deviceType, internalType, addr); } deviceState.setAudioDeviceCategory(btAudioDeviceCategory); mDeviceBroker.addOrUpdateBtAudioDeviceCategoryInInventory( deviceState, true /*syncInventory*/); mDeviceBroker.postPersistAudioDeviceSettings(); mSpatializerHelper.refreshDevice(deviceState.getAudioDeviceAttributes(), false /* initState */); mSoundDoseHelper.setAudioDeviceCategory(addr, internalType, btAudioDeviceCategory == AUDIO_DEVICE_CATEGORY_HEADPHONES); } @Override @android.annotation.EnforcePermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) @AudioDeviceCategory public int getBluetoothAudioDeviceCategory_legacy(@NonNull String address, boolean isBle) { super.getBluetoothAudioDeviceCategory_legacy_enforcePermission(); if (automaticBtDeviceType()) { return AUDIO_DEVICE_CATEGORY_UNKNOWN; } final AdiDeviceState deviceState = mDeviceBroker.findBtDeviceStateForAddress( Objects.requireNonNull(address), (isBle ? AudioSystem.DEVICE_OUT_BLE_HEADSET : AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP)); if (deviceState == null) { return AUDIO_DEVICE_CATEGORY_UNKNOWN; } return deviceState.getAudioDeviceCategory(); } @Override @android.annotation.EnforcePermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) public boolean setBluetoothAudioDeviceCategory(@NonNull String address, @AudioDeviceCategory int btAudioDeviceCategory) { super.setBluetoothAudioDeviceCategory_enforcePermission(); if (!automaticBtDeviceType()) { return false; } final String addr = Objects.requireNonNull(address); if (isBluetoothAudioDeviceCategoryFixed(addr)) { Loading @@ -12439,9 +12370,6 @@ public class AudioService extends IAudioService.Stub @AudioDeviceCategory public int getBluetoothAudioDeviceCategory(@NonNull String address) { super.getBluetoothAudioDeviceCategory_enforcePermission(); if (!automaticBtDeviceType()) { return AUDIO_DEVICE_CATEGORY_UNKNOWN; } return mDeviceBroker.getAndUpdateBtAdiDeviceStateCategoryForAddress(address); } Loading @@ -12450,9 +12378,6 @@ public class AudioService extends IAudioService.Stub @android.annotation.EnforcePermission(MODIFY_AUDIO_SETTINGS_PRIVILEGED) public boolean isBluetoothAudioDeviceCategoryFixed(@NonNull String address) { super.isBluetoothAudioDeviceCategoryFixed_enforcePermission(); if (!automaticBtDeviceType()) { return false; } return mDeviceBroker.isBluetoothAudioDeviceCategoryFixed(address); }