diff options
4 files changed, 23 insertions, 0 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index f41982ff75bf..2cd8e20c05c6 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -12996,6 +12996,7 @@ package android.content.pm { field public static final String FEATURE_AUDIO_LOW_LATENCY = "android.hardware.audio.low_latency"; field public static final String FEATURE_AUDIO_OUTPUT = "android.hardware.audio.output"; field public static final String FEATURE_AUDIO_PRO = "android.hardware.audio.pro"; + field @FlaggedApi("android.media.audio.feature_spatial_audio_headtracking_low_latency") public static final String FEATURE_AUDIO_SPATIAL_HEADTRACKING_LOW_LATENCY = "android.hardware.audio.spatial.headtracking.low_latency"; field public static final String FEATURE_AUTOFILL = "android.software.autofill"; field public static final String FEATURE_AUTOMOTIVE = "android.hardware.type.automotive"; field public static final String FEATURE_BACKUP = "android.software.backup"; diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 407ffbb7288f..49c8a7cad57a 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -16,6 +16,8 @@ package android.content.pm; +import static android.media.audio.Flags.FLAG_FEATURE_SPATIAL_AUDIO_HEADTRACKING_LOW_LATENCY; + import static com.android.internal.pm.pkg.parsing.ParsingPackageUtils.PARSE_COLLECT_CERTIFICATES; import android.Manifest; @@ -3065,6 +3067,17 @@ public abstract class PackageManager { public static final String FEATURE_AUDIO_PRO = "android.hardware.audio.pro"; /** + * Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature} + * which indicates whether head tracking for spatial audio operates with low-latency, + * as defined by the CDD criteria for the feature. + * + */ + @SdkConstant(SdkConstantType.FEATURE) + @FlaggedApi(FLAG_FEATURE_SPATIAL_AUDIO_HEADTRACKING_LOW_LATENCY) + public static final String FEATURE_AUDIO_SPATIAL_HEADTRACKING_LOW_LATENCY = + "android.hardware.audio.spatial.headtracking.low_latency"; + + /** * Feature for {@link #getSystemAvailableFeatures} and * {@link #hasSystemFeature}: The device is capable of communicating with * other devices via Bluetooth. diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 04deb0271c06..020d4fc968bd 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -32,6 +32,7 @@ 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.featureSpatialAudioHeadtrackingLowLatency; import static android.media.audio.Flags.focusFreezeTestApi; import static android.media.audiopolicy.Flags.enableFadeManagerConfiguration; import static android.os.Process.FIRST_APPLICATION_UID; @@ -4513,6 +4514,10 @@ public class AudioService extends IAudioService.Stub pw.println("\nFun with Flags: "); pw.println("\tandroid.media.audio.autoPublicVolumeApiHardening:" + autoPublicVolumeApiHardening()); + pw.println("\tandroid.media.audio.Flags.automaticBtDeviceType:" + + automaticBtDeviceType()); + pw.println("\tandroid.media.audio.featureSpatialAudioHeadtrackingLowLatency:" + + featureSpatialAudioHeadtrackingLowLatency()); pw.println("\tandroid.media.audio.focusFreezeTestApi:" + focusFreezeTestApi()); pw.println("\tcom.android.media.audio.bluetoothMacAddressAnonymization:" diff --git a/services/core/java/com/android/server/audio/SpatializerHelper.java b/services/core/java/com/android/server/audio/SpatializerHelper.java index 8d767313d5ab..3b5fa7f00891 100644 --- a/services/core/java/com/android/server/audio/SpatializerHelper.java +++ b/services/core/java/com/android/server/audio/SpatializerHelper.java @@ -26,6 +26,7 @@ import static com.android.media.audio.Flags.dsaOverBtLeAudio; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; +import android.content.pm.PackageManager; import android.hardware.Sensor; import android.hardware.SensorManager; import android.media.AudioAttributes; @@ -1611,6 +1612,9 @@ public class SpatializerHelper { pw.println("\tsupports binaural:" + mBinauralSupported + " / transaural:" + mTransauralSupported); pw.println("\tmSpatOutput:" + mSpatOutput); + pw.println("\thas FEATURE_AUDIO_SPATIAL_HEADTRACKING_LOW_LATENCY:" + + mAudioService.mContext.getPackageManager().hasSystemFeature( + PackageManager.FEATURE_AUDIO_SPATIAL_HEADTRACKING_LOW_LATENCY)); } private static String spatStateString(int state) { |