Merge "[Call Screening]Programmatically changing the default call screening app." am: 6dd64df8b3 am: 21457121f4
am: c274ac53a7
Change-Id: Ia013e710c961b8887bfaff1e8fe7af40fba26df1
This commit is contained in:
@@ -42316,6 +42316,7 @@ package android.telecom {
|
||||
method public java.lang.String getVoiceMailNumber(android.telecom.PhoneAccountHandle);
|
||||
method public boolean handleMmi(java.lang.String);
|
||||
method public boolean handleMmi(java.lang.String, android.telecom.PhoneAccountHandle);
|
||||
method public boolean isDefaultCallScreeningApp(android.content.ComponentName);
|
||||
method public boolean isInCall();
|
||||
method public boolean isInManagedCall();
|
||||
method public boolean isIncomingCallPermitted(android.telecom.PhoneAccountHandle);
|
||||
@@ -42324,12 +42325,14 @@ package android.telecom {
|
||||
method public boolean isVoiceMailNumber(android.telecom.PhoneAccountHandle, java.lang.String);
|
||||
method public void placeCall(android.net.Uri, android.os.Bundle);
|
||||
method public void registerPhoneAccount(android.telecom.PhoneAccount);
|
||||
method public void requestChangeDefaultCallScreeningApp(android.content.ComponentName);
|
||||
method public void showInCallScreen(boolean);
|
||||
method public void silenceRinger();
|
||||
method public void unregisterPhoneAccount(android.telecom.PhoneAccountHandle);
|
||||
field public static final java.lang.String ACTION_CHANGE_DEFAULT_DIALER = "android.telecom.action.CHANGE_DEFAULT_DIALER";
|
||||
field public static final java.lang.String ACTION_CHANGE_PHONE_ACCOUNTS = "android.telecom.action.CHANGE_PHONE_ACCOUNTS";
|
||||
field public static final java.lang.String ACTION_CONFIGURE_PHONE_ACCOUNT = "android.telecom.action.CONFIGURE_PHONE_ACCOUNT";
|
||||
field public static final java.lang.String ACTION_DEFAULT_CALL_SCREENING_APP_CHANGED = "android.telecom.action.DEFAULT_CALL_SCREENING_APP_CHANGED";
|
||||
field public static final java.lang.String ACTION_DEFAULT_DIALER_CHANGED = "android.telecom.action.DEFAULT_DIALER_CHANGED";
|
||||
field public static final deprecated java.lang.String ACTION_INCOMING_CALL = "android.telecom.action.INCOMING_CALL";
|
||||
field public static final java.lang.String ACTION_PHONE_ACCOUNT_REGISTERED = "android.telecom.action.PHONE_ACCOUNT_REGISTERED";
|
||||
@@ -42346,9 +42349,11 @@ package android.telecom {
|
||||
field public static final java.lang.String EXTRA_CALL_NETWORK_TYPE = "android.telecom.extra.CALL_NETWORK_TYPE";
|
||||
field public static final java.lang.String EXTRA_CALL_SUBJECT = "android.telecom.extra.CALL_SUBJECT";
|
||||
field public static final java.lang.String EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME = "android.telecom.extra.CHANGE_DEFAULT_DIALER_PACKAGE_NAME";
|
||||
field public static final java.lang.String EXTRA_DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME = "android.telecom.extra.DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME";
|
||||
field public static final java.lang.String EXTRA_INCOMING_CALL_ADDRESS = "android.telecom.extra.INCOMING_CALL_ADDRESS";
|
||||
field public static final java.lang.String EXTRA_INCOMING_CALL_EXTRAS = "android.telecom.extra.INCOMING_CALL_EXTRAS";
|
||||
field public static final java.lang.String EXTRA_INCOMING_VIDEO_STATE = "android.telecom.extra.INCOMING_VIDEO_STATE";
|
||||
field public static final java.lang.String EXTRA_IS_DEFAULT_CALL_SCREENING_APP = "android.telecom.extra.IS_DEFAULT_CALL_SCREENING_APP";
|
||||
field public static final java.lang.String EXTRA_NOTIFICATION_COUNT = "android.telecom.extra.NOTIFICATION_COUNT";
|
||||
field public static final java.lang.String EXTRA_NOTIFICATION_PHONE_NUMBER = "android.telecom.extra.NOTIFICATION_PHONE_NUMBER";
|
||||
field public static final java.lang.String EXTRA_OUTGOING_CALL_EXTRAS = "android.telecom.extra.OUTGOING_CALL_EXTRAS";
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
package android.telecom;
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.RequiresPermission;
|
||||
import android.annotation.SuppressAutoDoc;
|
||||
import android.annotation.SuppressLint;
|
||||
@@ -174,6 +175,33 @@ public class TelecomManager {
|
||||
public static final String EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME =
|
||||
"android.telecom.extra.CHANGE_DEFAULT_DIALER_PACKAGE_NAME";
|
||||
|
||||
/**
|
||||
* Broadcast intent action indicating that the current default call screening app has changed.
|
||||
*
|
||||
* The string extra {@link #EXTRA_DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME} will contain the
|
||||
* name of the Component of the previous or the new call screening app.
|
||||
*
|
||||
* The boolean extra {@link #EXTRA_IS_DEFAULT_CALL_SCREENING_APP} will indicate the component
|
||||
* name in the String extra {@link #EXTRA_DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME} is default
|
||||
* call screening app or not.
|
||||
*/
|
||||
public static final String ACTION_DEFAULT_CALL_SCREENING_APP_CHANGED =
|
||||
"android.telecom.action.DEFAULT_CALL_SCREENING_APP_CHANGED";
|
||||
|
||||
/**
|
||||
* Extra value used with {@link #ACTION_DEFAULT_CALL_SCREENING_APP_CHANGED} broadcast to
|
||||
* indicate the ComponentName of the call screening app which has changed.
|
||||
*/
|
||||
public static final String EXTRA_DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME =
|
||||
"android.telecom.extra.DEFAULT_CALL_SCREENING_APP_COMPONENT_NAME";
|
||||
|
||||
/**
|
||||
* Extra value used with {@link #ACTION_DEFAULT_CALL_SCREENING_APP_CHANGED} broadcast to
|
||||
* indicate whether an app is the default call screening app.
|
||||
*/
|
||||
public static final String EXTRA_IS_DEFAULT_CALL_SCREENING_APP =
|
||||
"android.telecom.extra.IS_DEFAULT_CALL_SCREENING_APP";
|
||||
|
||||
/**
|
||||
* Optional extra for {@link android.content.Intent#ACTION_CALL} containing a boolean that
|
||||
* determines whether the speakerphone should be automatically turned on for an outgoing call.
|
||||
@@ -1168,6 +1196,79 @@ public class TelecomManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to trigger display of the ChangeDefaultCallScreeningApp activity to prompt the user to
|
||||
* change the call screening app.
|
||||
*
|
||||
* A {@link SecurityException} will be thrown if calling package name doesn't match the package
|
||||
* of the passed {@link ComponentName}
|
||||
*
|
||||
* @param componentName to verify that the calling package name matches the package of the
|
||||
* passed ComponentName.
|
||||
*/
|
||||
public void requestChangeDefaultCallScreeningApp(@NonNull ComponentName componentName) {
|
||||
try {
|
||||
if (isServiceConnected()) {
|
||||
getTelecomService().requestChangeDefaultCallScreeningApp(componentName, mContext
|
||||
.getOpPackageName());
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG,
|
||||
"RemoteException calling ITelecomService#requestChangeDefaultCallScreeningApp.",
|
||||
e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to verify that the passed ComponentName is default call screening app.
|
||||
*
|
||||
* @param componentName to verify that the package of the passed ComponentName matched the default
|
||||
* call screening packageName.
|
||||
*
|
||||
* @return {@code true} if the passed componentName matches the default call screening's, {@code
|
||||
* false} if the passed componentName is null, or it doesn't match default call screening's.
|
||||
*/
|
||||
public boolean isDefaultCallScreeningApp(ComponentName componentName) {
|
||||
try {
|
||||
if (isServiceConnected()) {
|
||||
return getTelecomService().isDefaultCallScreeningApp(componentName);
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG,
|
||||
"RemoteException calling ITelecomService#isDefaultCallScreeningApp.",
|
||||
e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to set the default call screening package.
|
||||
*
|
||||
* Requires permission: {@link android.Manifest.permission#MODIFY_PHONE_STATE} Requires
|
||||
* permission: {@link android.Manifest.permission#WRITE_SECURE_SETTINGS}
|
||||
*
|
||||
* A {@link IllegalArgumentException} will be thrown if the specified package and component name
|
||||
* of {@link ComponentName} does't exist, or the specified component of {@link ComponentName}
|
||||
* does't have {@link android.Manifest.permission#BIND_SCREENING_SERVICE}.
|
||||
*
|
||||
* @param componentName to set the default call screening to.
|
||||
* @hide
|
||||
*/
|
||||
@RequiresPermission(anyOf = {
|
||||
android.Manifest.permission.MODIFY_PHONE_STATE,
|
||||
android.Manifest.permission.WRITE_SECURE_SETTINGS
|
||||
})
|
||||
public void setDefaultCallScreeningApp(ComponentName componentName) {
|
||||
try {
|
||||
if (isServiceConnected()) {
|
||||
getTelecomService().setDefaultCallScreeningApp(componentName);
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG,
|
||||
"RemoteException calling ITelecomService#setDefaultCallScreeningApp.", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return whether a given phone number is the configured voicemail number for a
|
||||
* particular phone account.
|
||||
|
||||
@@ -255,6 +255,21 @@ interface ITelecomService {
|
||||
*/
|
||||
boolean setDefaultDialer(in String packageName);
|
||||
|
||||
/**
|
||||
* @see TelecomServiceImpl#requestChangeDefaultCallScreeningApp
|
||||
*/
|
||||
void requestChangeDefaultCallScreeningApp(in ComponentName componentNamem, String callingPackage);
|
||||
|
||||
/**
|
||||
* @see TelecomServiceImpl#isDefaultCallScreeningApp
|
||||
*/
|
||||
boolean isDefaultCallScreeningApp(in ComponentName componentName);
|
||||
|
||||
/**
|
||||
* @see TelecomServiceImpl#setDefaultCallScreeningApp
|
||||
*/
|
||||
void setDefaultCallScreeningApp(in ComponentName componentName);
|
||||
|
||||
/**
|
||||
* @see TelecomServiceImpl#createManageBlockedNumbersIntent
|
||||
**/
|
||||
|
||||
Reference in New Issue
Block a user