Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7574b1f5 authored by Eric Laurent's avatar Eric Laurent Committed by Android (Google) Code Review
Browse files

Merge "Audio: add system API AudioManager.isScoManagedByAudio()" into main

parents f6aad9b2 51cc4dbc
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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);
+19 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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
    /**
+4 −0
Original line number Diff line number Diff line
@@ -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();
}
+9 −0
Original line number Diff line number Diff line
@@ -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;