diff --git a/AconfigFlags.bp b/AconfigFlags.bp index 0ee7ace5f66160a831fb3ff4529fdf651197d1df..28bb35dcea558d716cd02b4907be830208962e32 100644 --- a/AconfigFlags.bp +++ b/AconfigFlags.bp @@ -23,6 +23,7 @@ aconfig_srcjars = [ ":android.chre.flags-aconfig-java{.generated_srcjars}", ":android.companion.flags-aconfig-java{.generated_srcjars}", ":android.companion.virtual.flags-aconfig-java{.generated_srcjars}", + ":android.companion.virtualdevice.flags-aconfig-java{.generated_srcjars}", ":android.content.flags-aconfig-java{.generated_srcjars}", ":android.content.pm.flags-aconfig-java{.generated_srcjars}", ":android.content.res.flags-aconfig-java{.generated_srcjars}", diff --git a/core/java/android/companion/virtual/VirtualDeviceInternal.java b/core/java/android/companion/virtual/VirtualDeviceInternal.java index c1e443d1729d44cf22ee25bb5d968c38f45c8911..39f6de75928a95e0e5ecc8c79c9a837c075c6ec6 100644 --- a/core/java/android/companion/virtual/VirtualDeviceInternal.java +++ b/core/java/android/companion/virtual/VirtualDeviceInternal.java @@ -26,6 +26,7 @@ import android.companion.virtual.audio.VirtualAudioDevice; import android.companion.virtual.camera.VirtualCamera; import android.companion.virtual.camera.VirtualCameraConfig; import android.companion.virtual.sensor.VirtualSensor; +import android.companion.virtualdevice.flags.Flags; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -351,7 +352,11 @@ public class VirtualDeviceInternal { @Nullable Executor executor, @Nullable VirtualAudioDevice.AudioConfigurationChangeCallback callback) { if (mVirtualAudioDevice == null) { - mVirtualAudioDevice = new VirtualAudioDevice(mContext, mVirtualDevice, display, + Context context = mContext; + if (Flags.deviceAwareRecordAudioPermission()) { + context = mContext.createDeviceContext(getDeviceId()); + } + mVirtualAudioDevice = new VirtualAudioDevice(context, mVirtualDevice, display, executor, callback, () -> mVirtualAudioDevice = null); } return mVirtualAudioDevice; diff --git a/core/java/android/companion/virtual/flags/flags.aconfig b/core/java/android/companion/virtual/flags/flags.aconfig index d26890faee799abd1112bc9ecf70495dbd9d2b0d..ab8db6e59ddbfb48789410f4706ff6ae9e86246c 100644 --- a/core/java/android/companion/virtual/flags/flags.aconfig +++ b/core/java/android/companion/virtual/flags/flags.aconfig @@ -21,3 +21,11 @@ flag { description: "Enable discovery of the Virtual Camera HAL without a VINTF entry" bug: "305170199" } + +flag { + namespace: "virtual_devices" + name: "device_aware_record_audio_permission" + description: "Enable device-aware RECORD_AUDIO permission" + bug: "291737188" + is_fixed_read_only: true +}