Loading media/java/android/media/AudioManager.java +15 −6 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.compat.annotation.Overridable; import android.compat.annotation.UnsupportedAppUsage; import android.content.AttributionSource; import android.content.ComponentName; import android.content.Context; import android.content.Intent; Loading Loading @@ -1918,12 +1919,18 @@ public class AudioManager { @Deprecated public void setSpeakerphoneOn(boolean on) { final IAudioService service = getService(); try { service.setSpeakerphoneOn(mICallBack, on); service.setSpeakerphoneOn(mICallBack, on, getAttributionSource()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } private AttributionSource getAttributionSource() { Context context = getContext(); return (context != null) ? context.getAttributionSource() : AttributionSource.myAttributionSource(); } /** * Checks whether the speakerphone is on or off. * Loading Loading @@ -3089,7 +3096,8 @@ public class AudioManager { final IAudioService service = getService(); try { service.startBluetoothSco(mICallBack, getContext().getApplicationInfo().targetSdkVersion); getContext().getApplicationInfo().targetSdkVersion, getAttributionSource()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading @@ -3114,7 +3122,7 @@ public class AudioManager { public void startBluetoothScoVirtualCall() { final IAudioService service = getService(); try { service.startBluetoothScoVirtualCall(mICallBack); service.startBluetoothScoVirtualCall(mICallBack, getAttributionSource()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading @@ -3134,7 +3142,7 @@ public class AudioManager { @Deprecated public void stopBluetoothSco() { final IAudioService service = getService(); try { service.stopBluetoothSco(mICallBack); service.stopBluetoothSco(mICallBack, getAttributionSource()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading Loading @@ -9023,7 +9031,8 @@ public class AudioManager { Log.w(TAG, "setCommunicationDevice: device not found: " + device); return false; } return getService().setCommunicationDevice(mICallBack, device.getId()); return getService().setCommunicationDevice(mICallBack, device.getId(), getAttributionSource()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading @@ -9035,7 +9044,7 @@ public class AudioManager { */ public void clearCommunicationDevice() { try { getService().setCommunicationDevice(mICallBack, 0); getService().setCommunicationDevice(mICallBack, 0, getAttributionSource()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading media/java/android/media/IAudioService.aidl +6 −5 Original line number Diff line number Diff line Loading @@ -234,7 +234,7 @@ interface IAudioService { int getEncodedSurroundMode(int targetSdkVersion); void setSpeakerphoneOn(IBinder cb, boolean on); void setSpeakerphoneOn(IBinder cb, boolean on, in AttributionSource attributionSource); boolean isSpeakerphoneOn(); Loading Loading @@ -263,9 +263,10 @@ interface IAudioService { int getCurrentAudioFocus(); void startBluetoothSco(IBinder cb, int targetSdkVersion); void startBluetoothScoVirtualCall(IBinder cb); void stopBluetoothSco(IBinder cb); void startBluetoothSco(IBinder cb, int targetSdkVersion, in AttributionSource attributionSource); void startBluetoothScoVirtualCall(IBinder cb, in AttributionSource attributionSource); void stopBluetoothSco(IBinder cb, in AttributionSource attributionSource); void forceVolumeControlStream(int streamType, IBinder cb); Loading Loading @@ -542,7 +543,7 @@ interface IAudioService { int[] getAvailableCommunicationDeviceIds(); boolean setCommunicationDevice(IBinder cb, int portId); boolean setCommunicationDevice(IBinder cb, int portId, in AttributionSource attributionSource); int getCommunicationDevice(); Loading services/core/java/com/android/server/audio/AudioDeviceBroker.java +123 −87 File changed.Preview size limit exceeded, changes collapsed. Show changes services/core/java/com/android/server/audio/AudioService.java +45 −22 Original line number Diff line number Diff line Loading @@ -6840,9 +6840,13 @@ public class AudioService extends IAudioService.Stub * @see AudioManager#setCommunicationDevice(int) * @see AudioManager#clearCommunicationDevice() */ public boolean setCommunicationDevice(IBinder cb, int portId) { final int uid = Binder.getCallingUid(); final int pid = Binder.getCallingPid(); public boolean setCommunicationDevice(IBinder cb, int portId, @NonNull AttributionSource attributionSource) { if (attributionSource == null) { return false; } final int uid = attributionSource.getUid(); final int pid = attributionSource.getPid(); AudioDeviceInfo device = null; if (portId != 0) { Loading Loading @@ -6892,7 +6896,8 @@ public class AudioService extends IAudioService.Stub == PackageManager.PERMISSION_GRANTED; final long ident = Binder.clearCallingIdentity(); try { return mDeviceBroker.setCommunicationDevice(cb, uid, device, isPrivileged, eventSource); return mDeviceBroker.setCommunicationDevice( cb, attributionSource, device, isPrivileged, eventSource); } finally { Binder.restoreCallingIdentity(ident); } Loading Loading @@ -6934,7 +6939,11 @@ public class AudioService extends IAudioService.Stub } /** @see AudioManager#setSpeakerphoneOn(boolean) */ public void setSpeakerphoneOn(IBinder cb, boolean on) { public void setSpeakerphoneOn(IBinder cb, boolean on, @NonNull AttributionSource attributionSource) { if (attributionSource == null) { return; } if (!checkAudioSettingsPermission("setSpeakerphoneOn()")) { return; } Loading @@ -6942,8 +6951,8 @@ public class AudioService extends IAudioService.Stub == PackageManager.PERMISSION_GRANTED; // for logging only final int uid = Binder.getCallingUid(); final int pid = Binder.getCallingPid(); final int uid = attributionSource.getUid(); final int pid = attributionSource.getPid(); final String eventSource = new StringBuilder("setSpeakerphoneOn(").append(on) .append(") from u/pid:").append(uid).append("/") Loading @@ -6958,7 +6967,7 @@ public class AudioService extends IAudioService.Stub final long ident = Binder.clearCallingIdentity(); try { mDeviceBroker.setSpeakerphoneOn(cb, uid, on, isPrivileged, eventSource); mDeviceBroker.setSpeakerphoneOn(cb, attributionSource, on, isPrivileged, eventSource); } finally { Binder.restoreCallingIdentity(ident); } Loading Loading @@ -7062,13 +7071,17 @@ public class AudioService extends IAudioService.Stub } /** @see AudioManager#startBluetoothSco() */ public void startBluetoothSco(IBinder cb, int targetSdkVersion) { public void startBluetoothSco(IBinder cb, int targetSdkVersion, @NonNull AttributionSource attributionSource) { if (attributionSource == null) { return; } if (!checkAudioSettingsPermission("startBluetoothSco()")) { return; } final int uid = Binder.getCallingUid(); final int pid = Binder.getCallingPid(); final int uid = attributionSource.getUid(); final int pid = attributionSource.getPid(); final int scoAudioMode = (targetSdkVersion < Build.VERSION_CODES.JELLY_BEAN_MR2) ? BtHelper.SCO_MODE_VIRTUAL_CALL : BtHelper.SCO_MODE_UNDEFINED; Loading @@ -7083,18 +7096,22 @@ public class AudioService extends IAudioService.Stub .set(MediaMetrics.Property.SCO_AUDIO_MODE, BtHelper.scoAudioModeToString(scoAudioMode)) .record(); startBluetoothScoInt(cb, uid, scoAudioMode, eventSource); startBluetoothScoInt(cb, attributionSource, scoAudioMode, eventSource); } /** @see AudioManager#startBluetoothScoVirtualCall() */ public void startBluetoothScoVirtualCall(IBinder cb) { public void startBluetoothScoVirtualCall(IBinder cb, @NonNull AttributionSource attributionSource) { if (attributionSource == null) { return; } if (!checkAudioSettingsPermission("startBluetoothScoVirtualCall()")) { return; } final int uid = Binder.getCallingUid(); final int pid = Binder.getCallingPid(); final int uid = attributionSource.getUid(); final int pid = attributionSource.getPid(); final String eventSource = new StringBuilder("startBluetoothScoVirtualCall()") .append(") from u/pid:").append(uid).append("/") .append(pid).toString(); Loading @@ -7106,10 +7123,11 @@ public class AudioService extends IAudioService.Stub .set(MediaMetrics.Property.SCO_AUDIO_MODE, BtHelper.scoAudioModeToString(BtHelper.SCO_MODE_VIRTUAL_CALL)) .record(); startBluetoothScoInt(cb, uid, BtHelper.SCO_MODE_VIRTUAL_CALL, eventSource); startBluetoothScoInt(cb, attributionSource, BtHelper.SCO_MODE_VIRTUAL_CALL, eventSource); } void startBluetoothScoInt(IBinder cb, int uid, int scoAudioMode, @NonNull String eventSource) { void startBluetoothScoInt(IBinder cb, AttributionSource attributionSource, int scoAudioMode, @NonNull String eventSource) { MediaMetrics.Item mmi = new MediaMetrics.Item(MediaMetrics.Name.AUDIO_BLUETOOTH) .set(MediaMetrics.Property.EVENT, "startBluetoothScoInt") .set(MediaMetrics.Property.SCO_AUDIO_MODE, Loading @@ -7125,7 +7143,7 @@ public class AudioService extends IAudioService.Stub final long ident = Binder.clearCallingIdentity(); try { mDeviceBroker.startBluetoothScoForClient( cb, uid, scoAudioMode, isPrivileged, eventSource); cb, attributionSource, scoAudioMode, isPrivileged, eventSource); } finally { Binder.restoreCallingIdentity(ident); } Loading @@ -7133,13 +7151,17 @@ public class AudioService extends IAudioService.Stub } /** @see AudioManager#stopBluetoothSco() */ public void stopBluetoothSco(IBinder cb){ public void stopBluetoothSco(IBinder cb, @NonNull AttributionSource attributionSource) { if (attributionSource == null) { return; } if (!checkAudioSettingsPermission("stopBluetoothSco()") || !mSystemReady) { return; } final int uid = Binder.getCallingUid(); final int pid = Binder.getCallingPid(); final int uid = attributionSource.getUid(); final int pid = attributionSource.getPid(); final String eventSource = new StringBuilder("stopBluetoothSco()") .append(") from u/pid:").append(uid).append("/") .append(pid).toString(); Loading @@ -7147,7 +7169,8 @@ public class AudioService extends IAudioService.Stub == PackageManager.PERMISSION_GRANTED; final long ident = Binder.clearCallingIdentity(); try { mDeviceBroker.stopBluetoothScoForClient(cb, uid, isPrivileged, eventSource); mDeviceBroker.stopBluetoothScoForClient( cb, attributionSource, isPrivileged, eventSource); } finally { Binder.restoreCallingIdentity(ident); } Loading Loading
media/java/android/media/AudioManager.java +15 −6 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.compat.annotation.Overridable; import android.compat.annotation.UnsupportedAppUsage; import android.content.AttributionSource; import android.content.ComponentName; import android.content.Context; import android.content.Intent; Loading Loading @@ -1918,12 +1919,18 @@ public class AudioManager { @Deprecated public void setSpeakerphoneOn(boolean on) { final IAudioService service = getService(); try { service.setSpeakerphoneOn(mICallBack, on); service.setSpeakerphoneOn(mICallBack, on, getAttributionSource()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } private AttributionSource getAttributionSource() { Context context = getContext(); return (context != null) ? context.getAttributionSource() : AttributionSource.myAttributionSource(); } /** * Checks whether the speakerphone is on or off. * Loading Loading @@ -3089,7 +3096,8 @@ public class AudioManager { final IAudioService service = getService(); try { service.startBluetoothSco(mICallBack, getContext().getApplicationInfo().targetSdkVersion); getContext().getApplicationInfo().targetSdkVersion, getAttributionSource()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading @@ -3114,7 +3122,7 @@ public class AudioManager { public void startBluetoothScoVirtualCall() { final IAudioService service = getService(); try { service.startBluetoothScoVirtualCall(mICallBack); service.startBluetoothScoVirtualCall(mICallBack, getAttributionSource()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading @@ -3134,7 +3142,7 @@ public class AudioManager { @Deprecated public void stopBluetoothSco() { final IAudioService service = getService(); try { service.stopBluetoothSco(mICallBack); service.stopBluetoothSco(mICallBack, getAttributionSource()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading Loading @@ -9023,7 +9031,8 @@ public class AudioManager { Log.w(TAG, "setCommunicationDevice: device not found: " + device); return false; } return getService().setCommunicationDevice(mICallBack, device.getId()); return getService().setCommunicationDevice(mICallBack, device.getId(), getAttributionSource()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading @@ -9035,7 +9044,7 @@ public class AudioManager { */ public void clearCommunicationDevice() { try { getService().setCommunicationDevice(mICallBack, 0); getService().setCommunicationDevice(mICallBack, 0, getAttributionSource()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading
media/java/android/media/IAudioService.aidl +6 −5 Original line number Diff line number Diff line Loading @@ -234,7 +234,7 @@ interface IAudioService { int getEncodedSurroundMode(int targetSdkVersion); void setSpeakerphoneOn(IBinder cb, boolean on); void setSpeakerphoneOn(IBinder cb, boolean on, in AttributionSource attributionSource); boolean isSpeakerphoneOn(); Loading Loading @@ -263,9 +263,10 @@ interface IAudioService { int getCurrentAudioFocus(); void startBluetoothSco(IBinder cb, int targetSdkVersion); void startBluetoothScoVirtualCall(IBinder cb); void stopBluetoothSco(IBinder cb); void startBluetoothSco(IBinder cb, int targetSdkVersion, in AttributionSource attributionSource); void startBluetoothScoVirtualCall(IBinder cb, in AttributionSource attributionSource); void stopBluetoothSco(IBinder cb, in AttributionSource attributionSource); void forceVolumeControlStream(int streamType, IBinder cb); Loading Loading @@ -542,7 +543,7 @@ interface IAudioService { int[] getAvailableCommunicationDeviceIds(); boolean setCommunicationDevice(IBinder cb, int portId); boolean setCommunicationDevice(IBinder cb, int portId, in AttributionSource attributionSource); int getCommunicationDevice(); Loading
services/core/java/com/android/server/audio/AudioDeviceBroker.java +123 −87 File changed.Preview size limit exceeded, changes collapsed. Show changes
services/core/java/com/android/server/audio/AudioService.java +45 −22 Original line number Diff line number Diff line Loading @@ -6840,9 +6840,13 @@ public class AudioService extends IAudioService.Stub * @see AudioManager#setCommunicationDevice(int) * @see AudioManager#clearCommunicationDevice() */ public boolean setCommunicationDevice(IBinder cb, int portId) { final int uid = Binder.getCallingUid(); final int pid = Binder.getCallingPid(); public boolean setCommunicationDevice(IBinder cb, int portId, @NonNull AttributionSource attributionSource) { if (attributionSource == null) { return false; } final int uid = attributionSource.getUid(); final int pid = attributionSource.getPid(); AudioDeviceInfo device = null; if (portId != 0) { Loading Loading @@ -6892,7 +6896,8 @@ public class AudioService extends IAudioService.Stub == PackageManager.PERMISSION_GRANTED; final long ident = Binder.clearCallingIdentity(); try { return mDeviceBroker.setCommunicationDevice(cb, uid, device, isPrivileged, eventSource); return mDeviceBroker.setCommunicationDevice( cb, attributionSource, device, isPrivileged, eventSource); } finally { Binder.restoreCallingIdentity(ident); } Loading Loading @@ -6934,7 +6939,11 @@ public class AudioService extends IAudioService.Stub } /** @see AudioManager#setSpeakerphoneOn(boolean) */ public void setSpeakerphoneOn(IBinder cb, boolean on) { public void setSpeakerphoneOn(IBinder cb, boolean on, @NonNull AttributionSource attributionSource) { if (attributionSource == null) { return; } if (!checkAudioSettingsPermission("setSpeakerphoneOn()")) { return; } Loading @@ -6942,8 +6951,8 @@ public class AudioService extends IAudioService.Stub == PackageManager.PERMISSION_GRANTED; // for logging only final int uid = Binder.getCallingUid(); final int pid = Binder.getCallingPid(); final int uid = attributionSource.getUid(); final int pid = attributionSource.getPid(); final String eventSource = new StringBuilder("setSpeakerphoneOn(").append(on) .append(") from u/pid:").append(uid).append("/") Loading @@ -6958,7 +6967,7 @@ public class AudioService extends IAudioService.Stub final long ident = Binder.clearCallingIdentity(); try { mDeviceBroker.setSpeakerphoneOn(cb, uid, on, isPrivileged, eventSource); mDeviceBroker.setSpeakerphoneOn(cb, attributionSource, on, isPrivileged, eventSource); } finally { Binder.restoreCallingIdentity(ident); } Loading Loading @@ -7062,13 +7071,17 @@ public class AudioService extends IAudioService.Stub } /** @see AudioManager#startBluetoothSco() */ public void startBluetoothSco(IBinder cb, int targetSdkVersion) { public void startBluetoothSco(IBinder cb, int targetSdkVersion, @NonNull AttributionSource attributionSource) { if (attributionSource == null) { return; } if (!checkAudioSettingsPermission("startBluetoothSco()")) { return; } final int uid = Binder.getCallingUid(); final int pid = Binder.getCallingPid(); final int uid = attributionSource.getUid(); final int pid = attributionSource.getPid(); final int scoAudioMode = (targetSdkVersion < Build.VERSION_CODES.JELLY_BEAN_MR2) ? BtHelper.SCO_MODE_VIRTUAL_CALL : BtHelper.SCO_MODE_UNDEFINED; Loading @@ -7083,18 +7096,22 @@ public class AudioService extends IAudioService.Stub .set(MediaMetrics.Property.SCO_AUDIO_MODE, BtHelper.scoAudioModeToString(scoAudioMode)) .record(); startBluetoothScoInt(cb, uid, scoAudioMode, eventSource); startBluetoothScoInt(cb, attributionSource, scoAudioMode, eventSource); } /** @see AudioManager#startBluetoothScoVirtualCall() */ public void startBluetoothScoVirtualCall(IBinder cb) { public void startBluetoothScoVirtualCall(IBinder cb, @NonNull AttributionSource attributionSource) { if (attributionSource == null) { return; } if (!checkAudioSettingsPermission("startBluetoothScoVirtualCall()")) { return; } final int uid = Binder.getCallingUid(); final int pid = Binder.getCallingPid(); final int uid = attributionSource.getUid(); final int pid = attributionSource.getPid(); final String eventSource = new StringBuilder("startBluetoothScoVirtualCall()") .append(") from u/pid:").append(uid).append("/") .append(pid).toString(); Loading @@ -7106,10 +7123,11 @@ public class AudioService extends IAudioService.Stub .set(MediaMetrics.Property.SCO_AUDIO_MODE, BtHelper.scoAudioModeToString(BtHelper.SCO_MODE_VIRTUAL_CALL)) .record(); startBluetoothScoInt(cb, uid, BtHelper.SCO_MODE_VIRTUAL_CALL, eventSource); startBluetoothScoInt(cb, attributionSource, BtHelper.SCO_MODE_VIRTUAL_CALL, eventSource); } void startBluetoothScoInt(IBinder cb, int uid, int scoAudioMode, @NonNull String eventSource) { void startBluetoothScoInt(IBinder cb, AttributionSource attributionSource, int scoAudioMode, @NonNull String eventSource) { MediaMetrics.Item mmi = new MediaMetrics.Item(MediaMetrics.Name.AUDIO_BLUETOOTH) .set(MediaMetrics.Property.EVENT, "startBluetoothScoInt") .set(MediaMetrics.Property.SCO_AUDIO_MODE, Loading @@ -7125,7 +7143,7 @@ public class AudioService extends IAudioService.Stub final long ident = Binder.clearCallingIdentity(); try { mDeviceBroker.startBluetoothScoForClient( cb, uid, scoAudioMode, isPrivileged, eventSource); cb, attributionSource, scoAudioMode, isPrivileged, eventSource); } finally { Binder.restoreCallingIdentity(ident); } Loading @@ -7133,13 +7151,17 @@ public class AudioService extends IAudioService.Stub } /** @see AudioManager#stopBluetoothSco() */ public void stopBluetoothSco(IBinder cb){ public void stopBluetoothSco(IBinder cb, @NonNull AttributionSource attributionSource) { if (attributionSource == null) { return; } if (!checkAudioSettingsPermission("stopBluetoothSco()") || !mSystemReady) { return; } final int uid = Binder.getCallingUid(); final int pid = Binder.getCallingPid(); final int uid = attributionSource.getUid(); final int pid = attributionSource.getPid(); final String eventSource = new StringBuilder("stopBluetoothSco()") .append(") from u/pid:").append(uid).append("/") .append(pid).toString(); Loading @@ -7147,7 +7169,8 @@ public class AudioService extends IAudioService.Stub == PackageManager.PERMISSION_GRANTED; final long ident = Binder.clearCallingIdentity(); try { mDeviceBroker.stopBluetoothScoForClient(cb, uid, isPrivileged, eventSource); mDeviceBroker.stopBluetoothScoForClient( cb, attributionSource, isPrivileged, eventSource); } finally { Binder.restoreCallingIdentity(ident); } Loading