diff options
| -rw-r--r-- | data/etc/privapp-permissions-platform.xml | 1 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/PhoneAccount.java | 19 | ||||
| -rw-r--r-- | telephony/java/android/telephony/CarrierConfigManager.java | 10 |
3 files changed, 30 insertions, 0 deletions
diff --git a/data/etc/privapp-permissions-platform.xml b/data/etc/privapp-permissions-platform.xml index 6a3a97392955..bf48a7946248 100644 --- a/data/etc/privapp-permissions-platform.xml +++ b/data/etc/privapp-permissions-platform.xml @@ -212,6 +212,7 @@ applications that come with the platform <permission name="android.permission.CALL_PRIVILEGED"/> <permission name="android.permission.INTERACT_ACROSS_USERS"/> <permission name="android.permission.MANAGE_USERS"/> + <permission name="android.permission.MODIFY_AUDIO_ROUTING" /> <permission name="android.permission.MODIFY_PHONE_STATE"/> <permission name="android.permission.STOP_APP_SWITCHES"/> <permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/> diff --git a/telecomm/java/android/telecom/PhoneAccount.java b/telecomm/java/android/telecom/PhoneAccount.java index fcfc5931ac7b..95eb14ada354 100644 --- a/telecomm/java/android/telecom/PhoneAccount.java +++ b/telecomm/java/android/telecom/PhoneAccount.java @@ -134,6 +134,25 @@ public final class PhoneAccount implements Parcelable { "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} * will be allowed to manage phone calls including using its own proprietary phone-call diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 32a62e3a30f4..47ba483a6440 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -154,6 +154,15 @@ public class CarrierConfigManager { public static final String KEY_ALLOW_LOCAL_DTMF_TONES_BOOL = "allow_local_dtmf_tones_bool"; /** + * Determines if the carrier requires that a tone be played to the remote party when an app is + * recording audio during a call (e.g. using a call recording app). + * <p> + * Note: This requires the Telephony config_supports_telephony_audio_device overlay to be true + * in order to work. + * @hide + */ + public static final String KEY_PLAY_CALL_RECORDING_TONE_BOOL = "play_call_recording_tone_bool"; + /** * Determines if the carrier requires converting the destination number before sending out an * SMS. Certain networks and numbering plans require different formats. */ @@ -1787,6 +1796,7 @@ public class CarrierConfigManager { sDefaults.putBoolean(KEY_ADDITIONAL_CALL_SETTING_BOOL, true); sDefaults.putBoolean(KEY_ALLOW_EMERGENCY_NUMBERS_IN_CALL_LOG_BOOL, false); sDefaults.putBoolean(KEY_ALLOW_LOCAL_DTMF_TONES_BOOL, true); + sDefaults.putBoolean(KEY_PLAY_CALL_RECORDING_TONE_BOOL, false); sDefaults.putBoolean(KEY_APN_EXPAND_BOOL, true); sDefaults.putBoolean(KEY_AUTO_RETRY_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_SETTINGS_ENABLE_BOOL, false); |