Loading core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -7745,6 +7745,7 @@ package android.media { method public boolean isHdmiSystemAudioSupported(); method @RequiresPermission(android.Manifest.permission.CAPTURE_AUDIO_HOTWORD) public boolean isHotwordStreamSupported(boolean); method @RequiresPermission(android.Manifest.permission.CALL_AUDIO_INTERCEPTION) public boolean isPstnCallAudioInterceptable(); method @FlaggedApi("android.media.audio.sco_managed_by_audio") public boolean isScoManagedByAudio(); method @RequiresPermission(android.Manifest.permission.ACCESS_ULTRASOUND) public boolean isUltrasoundSupported(); method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void muteAwaitConnection(@NonNull int[], @NonNull android.media.AudioDeviceAttributes, long, @NonNull java.util.concurrent.TimeUnit) throws java.lang.IllegalStateException; method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int registerAudioPolicy(@NonNull android.media.audiopolicy.AudioPolicy); media/java/android/media/AudioManager.java +19 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static android.media.audio.Flags.FLAG_DEPRECATE_STREAM_BT_SCO; import static android.media.audio.Flags.FLAG_FOCUS_EXCLUSIVE_WITH_RECORDING; import static android.media.audio.Flags.FLAG_FOCUS_FREEZE_TEST_API; import static android.media.audio.Flags.FLAG_REGISTER_VOLUME_CALLBACK_API_HARDENING; import static android.media.audio.Flags.FLAG_SCO_MANAGED_BY_AUDIO; import static android.media.audio.Flags.FLAG_SUPPORTED_DEVICE_TYPES_API; import static android.media.audio.Flags.FLAG_UNIFY_ABSOLUTE_VOLUME_MANAGEMENT; import static android.media.audio.Flags.autoPublicVolumeApiHardening; Loading Loading @@ -9704,6 +9705,24 @@ public class AudioManager { } } /** * @hide * Queries if Bluetooth SCO audio connection is controlled by the audio framework based on the * feature flag (until removed) and system property states. * @return true if SCO audio is managed by the audio framework, false otherwise. */ @SystemApi @FlaggedApi(FLAG_SCO_MANAGED_BY_AUDIO) public boolean isScoManagedByAudio() { try { return getService().isScoManagedByAudio(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } //--------------------------------------------------------- // audio device connection-dependent muting /** Loading media/java/android/media/IAudioService.aidl +4 −0 Original line number Diff line number Diff line Loading @@ -838,4 +838,8 @@ interface IAudioService { @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED") @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)") void setEnableHardening(in boolean shouldEnable); @EnforcePermission("BLUETOOTH_PRIVILEGED") @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean isScoManagedByAudio(); } services/core/java/com/android/server/audio/AudioService.java +9 −0 Original line number Diff line number Diff line Loading @@ -7952,6 +7952,15 @@ public class AudioService extends IAudioService.Stub .record(); } /** * @see AudioManager#isScoManagedByAudio() * @return true if SCO is managed by audio, false otherwise */ @android.annotation.EnforcePermission(BLUETOOTH_PRIVILEGED) public boolean isScoManagedByAudio() { super.isScoManagedByAudio_enforcePermission(); return mDeviceBroker.isScoManagedByAudio(); } /*package*/ ContentResolver getContentResolver() { return mContentResolver; Loading Loading
core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -7745,6 +7745,7 @@ package android.media { method public boolean isHdmiSystemAudioSupported(); method @RequiresPermission(android.Manifest.permission.CAPTURE_AUDIO_HOTWORD) public boolean isHotwordStreamSupported(boolean); method @RequiresPermission(android.Manifest.permission.CALL_AUDIO_INTERCEPTION) public boolean isPstnCallAudioInterceptable(); method @FlaggedApi("android.media.audio.sco_managed_by_audio") public boolean isScoManagedByAudio(); method @RequiresPermission(android.Manifest.permission.ACCESS_ULTRASOUND) public boolean isUltrasoundSupported(); method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void muteAwaitConnection(@NonNull int[], @NonNull android.media.AudioDeviceAttributes, long, @NonNull java.util.concurrent.TimeUnit) throws java.lang.IllegalStateException; method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int registerAudioPolicy(@NonNull android.media.audiopolicy.AudioPolicy);
media/java/android/media/AudioManager.java +19 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static android.media.audio.Flags.FLAG_DEPRECATE_STREAM_BT_SCO; import static android.media.audio.Flags.FLAG_FOCUS_EXCLUSIVE_WITH_RECORDING; import static android.media.audio.Flags.FLAG_FOCUS_FREEZE_TEST_API; import static android.media.audio.Flags.FLAG_REGISTER_VOLUME_CALLBACK_API_HARDENING; import static android.media.audio.Flags.FLAG_SCO_MANAGED_BY_AUDIO; import static android.media.audio.Flags.FLAG_SUPPORTED_DEVICE_TYPES_API; import static android.media.audio.Flags.FLAG_UNIFY_ABSOLUTE_VOLUME_MANAGEMENT; import static android.media.audio.Flags.autoPublicVolumeApiHardening; Loading Loading @@ -9704,6 +9705,24 @@ public class AudioManager { } } /** * @hide * Queries if Bluetooth SCO audio connection is controlled by the audio framework based on the * feature flag (until removed) and system property states. * @return true if SCO audio is managed by the audio framework, false otherwise. */ @SystemApi @FlaggedApi(FLAG_SCO_MANAGED_BY_AUDIO) public boolean isScoManagedByAudio() { try { return getService().isScoManagedByAudio(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } //--------------------------------------------------------- // audio device connection-dependent muting /** Loading
media/java/android/media/IAudioService.aidl +4 −0 Original line number Diff line number Diff line Loading @@ -838,4 +838,8 @@ interface IAudioService { @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED") @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED)") void setEnableHardening(in boolean shouldEnable); @EnforcePermission("BLUETOOTH_PRIVILEGED") @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean isScoManagedByAudio(); }
services/core/java/com/android/server/audio/AudioService.java +9 −0 Original line number Diff line number Diff line Loading @@ -7952,6 +7952,15 @@ public class AudioService extends IAudioService.Stub .record(); } /** * @see AudioManager#isScoManagedByAudio() * @return true if SCO is managed by audio, false otherwise */ @android.annotation.EnforcePermission(BLUETOOTH_PRIVILEGED) public boolean isScoManagedByAudio() { super.isScoManagedByAudio_enforcePermission(); return mDeviceBroker.isScoManagedByAudio(); } /*package*/ ContentResolver getContentResolver() { return mContentResolver; Loading