Add call recording tone support.

Adding carrier configuration option to specify whether the carrier requires
the incall recording tone be played.
Added phone account extra used in Telephony to communicate this to
Telecom.
Added permission pregrant for Telecom for MODIFY_AUDIO_ROUTING; this is
needed as Telecom listening to the AudioRecordingConfiguration callback
from the audio framework.  It needs the permission so that it can be
informed of the package names of recording apps.

Test: Manually enabled for local carrier and confirmed that recording
tone plays to remote party when a recording app is started on the device.
Bug: 64138141

Change-Id: I1ab521b79cbeeb4ff4dcbf83de7c17c539637bdc
This commit is contained in:
Tyler Gunn
2018-01-29 14:30:52 -08:00
parent af5b90ff45
commit acdb686635
3 changed files with 30 additions and 0 deletions

View File

@@ -133,6 +133,25 @@ public final class PhoneAccount implements Parcelable {
public static final String EXTRA_LOG_SELF_MANAGED_CALLS =
"android.telecom.extra.LOG_SELF_MANAGED_CALLS";
/**
* Boolean {@link PhoneAccount} extras key (see {@link PhoneAccount#getExtras()}) which
* indicates whether calls for a {@link PhoneAccount} should generate a "call recording tone"
* when the user is recording audio on the device.
* <p>
* The call recording tone is played over the telephony audio stream so that the remote party
* has an audible indication that it is possible their call is being recorded using a call
* recording app on the device.
* <p>
* This extra only has an effect for calls placed via Telephony (e.g.
* {@link #CAPABILITY_SIM_SUBSCRIPTION}).
* <p>
* The call recording tone is a 1400 hz tone which repeats every 15 seconds while recording is
* in progress.
* @hide
*/
public static final String EXTRA_PLAY_CALL_RECORDING_TONE =
"android.telecom.extra.PLAY_CALL_RECORDING_TONE";
/**
* Flag indicating that this {@code PhoneAccount} can act as a connection manager for
* other connections. The {@link ConnectionService} associated with this {@code PhoneAccount}