Merge "AudioManager: test API for dynamic audio policy" into qt-dev

This commit is contained in:
Jean-Michel Trivi
2019-04-15 22:46:46 +00:00
committed by Android (Google) Code Review
4 changed files with 24 additions and 0 deletions

View File

@@ -1100,6 +1100,7 @@ package android.media {
public class AudioManager {
method @RequiresPermission("android.permission.MODIFY_AUDIO_ROUTING") public int dispatchAudioFocusChange(@NonNull android.media.AudioFocusInfo, int, @NonNull android.media.audiopolicy.AudioPolicy);
method public boolean hasRegisteredDynamicPolicy();
method @RequiresPermission("android.permission.MODIFY_AUDIO_ROUTING") public int registerAudioPolicy(@NonNull android.media.audiopolicy.AudioPolicy);
method @RequiresPermission("android.permission.MODIFY_AUDIO_ROUTING") public void setFocusRequestResult(@NonNull android.media.AudioFocusInfo, int, @NonNull android.media.audiopolicy.AudioPolicy);
method @RequiresPermission("android.permission.MODIFY_AUDIO_ROUTING") public void unregisterAudioPolicy(@NonNull android.media.audiopolicy.AudioPolicy);

View File

@@ -3431,6 +3431,20 @@ public class AudioManager {
}
}
/**
* @hide
* @return true if an AudioPolicy was previously registered
*/
@TestApi
public boolean hasRegisteredDynamicPolicy() {
final IAudioService service = getService();
try {
return service.hasRegisteredDynamicPolicy();
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
}
//====================================================================
// Notification of playback activity & playback configuration
/**

View File

@@ -211,6 +211,8 @@ interface IAudioService {
void setVolumePolicy(in VolumePolicy policy);
boolean hasRegisteredDynamicPolicy();
void registerRecordingCallback(in IRecordingConfigDispatcher rcdb);
oneway void unregisterRecordingCallback(in IRecordingConfigDispatcher rcdb);

View File

@@ -6671,6 +6671,13 @@ public class AudioService extends IAudioService.Stub
return AudioManager.SUCCESS;
}
/** see AudioManager.hasRegisteredDynamicPolicy */
public boolean hasRegisteredDynamicPolicy() {
synchronized (mAudioPolicies) {
return !mAudioPolicies.isEmpty();
}
}
private final Object mExtVolumeControllerLock = new Object();
private IAudioPolicyCallback mExtVolumeController;
private void setExtVolumeController(IAudioPolicyCallback apc) {