summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Gunn <tgunn@google.com>2020-05-15 10:19:32 -0700
committerTyler Gunn <tgunn@google.com>2020-05-15 10:19:32 -0700
commit460b7d49a1504a65204a68f5084fe82be26aca43 (patch)
treec0d74776c245f8f7e4418ddb0f1f033361fe3206
parentf633705ae21f03188caff3c180158b6f9fdf4f7f (diff)
Update audio processing API docs.
Updating the audio processing API docs to mention the fact that the app must indicate in their InCallService and CallScreeningService service entries that the service type is for "microphone" access, otherwise background audio access will not be permitted. Test: Docs only change. Bug: 156042528 Change-Id: I3576dba445497791e6fa4e0a2fa42cf10eb1df5b
-rwxr-xr-xtelecomm/java/android/telecom/Call.java13
-rw-r--r--telecomm/java/android/telecom/CallScreeningService.java14
2 files changed, 24 insertions, 3 deletions
diff --git a/telecomm/java/android/telecom/Call.java b/telecomm/java/android/telecom/Call.java
index ead90bb4561f..3365ab740cde 100755
--- a/telecomm/java/android/telecom/Call.java
+++ b/telecomm/java/android/telecom/Call.java
@@ -22,6 +22,7 @@ import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.compat.annotation.UnsupportedAppUsage;
+import android.content.pm.ServiceInfo;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
@@ -1635,13 +1636,21 @@ public final class Call {
/**
* Instructs Telecom to put the call into the background audio processing state.
- *
+ * <p>
* This method can be called either when the call is in {@link #STATE_RINGING} or
* {@link #STATE_ACTIVE}. After Telecom acknowledges the request by setting the call's state to
* {@link #STATE_AUDIO_PROCESSING}, your app may setup the audio paths with the audio stack in
* order to capture and play audio on the call stream.
- *
+ * <p>
* This method can only be called by the default dialer app.
+ * <p>
+ * Apps built with SDK version {@link android.os.Build.VERSION_CODES#R} or later which are using
+ * the microphone as part of audio processing should specify the foreground service type using
+ * the attribute {@link android.R.attr#foregroundServiceType} in the {@link InCallService}
+ * service element of the app's manifest file.
+ * The {@link ServiceInfo#FOREGROUND_SERVICE_TYPE_MICROPHONE} attribute should be specified.
+ * @see <a href="https://developer.android.com/preview/privacy/foreground-service-types">
+ * the Android Developer Site</a> for more information.
* @hide
*/
@SystemApi
diff --git a/telecomm/java/android/telecom/CallScreeningService.java b/telecomm/java/android/telecom/CallScreeningService.java
index f8722f4ea653..8abab90f775f 100644
--- a/telecomm/java/android/telecom/CallScreeningService.java
+++ b/telecomm/java/android/telecom/CallScreeningService.java
@@ -23,6 +23,7 @@ import android.annotation.TestApi;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
+import android.content.pm.ServiceInfo;
import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
@@ -281,9 +282,20 @@ public abstract class CallScreeningService extends Service {
* Sets whether to request background audio processing so that the in-call service can
* screen the call further. If set to {@code true}, {@link #setDisallowCall} should be
* called with {@code false}, and all other parameters in this builder will be ignored.
- *
+ * <p>
* This request will only be honored if the {@link CallScreeningService} shares the same
* uid as the default dialer app. Otherwise, the call will go through as usual.
+ * <p>
+ * Apps built with SDK version {@link android.os.Build.VERSION_CODES#R} or later which
+ * are using the microphone as part of audio processing should specify the
+ * foreground service type using the attribute
+ * {@link android.R.attr#foregroundServiceType} in the {@link CallScreeningService}
+ * service element of the app's manifest file.
+ * The {@link ServiceInfo#FOREGROUND_SERVICE_TYPE_MICROPHONE} attribute should be
+ * specified.
+ * @see
+ * <a href="https://developer.android.com/preview/privacy/foreground-service-types">
+ * the Android Developer Site</a> for more information.
*
* @param shouldScreenCallViaAudioProcessing Whether to request further call screening.
* @hide