Merge "[Telephony] TelephonyCallback API update" into sc-dev
This commit is contained in:
@@ -41921,42 +41921,42 @@ package android.telephony {
|
||||
@Deprecated public class PhoneStateListener {
|
||||
ctor @Deprecated public PhoneStateListener();
|
||||
ctor @Deprecated public PhoneStateListener(@NonNull java.util.concurrent.Executor);
|
||||
method @Deprecated public void onActiveDataSubscriptionIdChanged(int);
|
||||
method @Deprecated public void onBarringInfoChanged(@NonNull android.telephony.BarringInfo);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public void onActiveDataSubscriptionIdChanged(int);
|
||||
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.READ_PRECISE_PHONE_STATE, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void onBarringInfoChanged(@NonNull android.telephony.BarringInfo);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public void onCallDisconnectCauseChanged(int, int);
|
||||
method @Deprecated public void onCallForwardingIndicatorChanged(boolean);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public void onCallForwardingIndicatorChanged(boolean);
|
||||
method @Deprecated @RequiresPermission(value=android.Manifest.permission.READ_PHONE_STATE, conditional=true) public void onCallStateChanged(int, String);
|
||||
method @Deprecated public void onCellInfoChanged(java.util.List<android.telephony.CellInfo>);
|
||||
method @Deprecated public void onCellLocationChanged(android.telephony.CellLocation);
|
||||
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.READ_PHONE_STATE, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void onCellInfoChanged(java.util.List<android.telephony.CellInfo>);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public void onCellLocationChanged(android.telephony.CellLocation);
|
||||
method @Deprecated public void onDataActivity(int);
|
||||
method @Deprecated public void onDataConnectionStateChanged(int);
|
||||
method @Deprecated public void onDataConnectionStateChanged(int, int);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public void onDisplayInfoChanged(@NonNull android.telephony.TelephonyDisplayInfo);
|
||||
method @Deprecated public void onEmergencyNumberListChanged(@NonNull java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>>);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public void onEmergencyNumberListChanged(@NonNull java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>>);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public void onImsCallDisconnectCauseChanged(@NonNull android.telephony.ims.ImsReasonInfo);
|
||||
method @Deprecated public void onMessageWaitingIndicatorChanged(boolean);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void onPreciseDataConnectionStateChanged(@NonNull android.telephony.PreciseDataConnectionState);
|
||||
method @Deprecated public void onRegistrationFailed(@NonNull android.telephony.CellIdentity, @NonNull String, int, int, int);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public void onMessageWaitingIndicatorChanged(boolean);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public void onPreciseDataConnectionStateChanged(@NonNull android.telephony.PreciseDataConnectionState);
|
||||
method @Deprecated @RequiresPermission(allOf={android.Manifest.permission.READ_PRECISE_PHONE_STATE, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void onRegistrationFailed(@NonNull android.telephony.CellIdentity, @NonNull String, int, int, int);
|
||||
method @Deprecated public void onServiceStateChanged(android.telephony.ServiceState);
|
||||
method @Deprecated public void onSignalStrengthChanged(int);
|
||||
method @Deprecated public void onSignalStrengthsChanged(android.telephony.SignalStrength);
|
||||
method @Deprecated public void onUserMobileDataStateChanged(boolean);
|
||||
field @Deprecated public static final int LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE = 4194304; // 0x400000
|
||||
field @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public static final int LISTEN_BARRING_INFO = -2147483648; // 0x80000000
|
||||
field @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public static final int LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE = 4194304; // 0x400000
|
||||
field @Deprecated @RequiresPermission(allOf={android.Manifest.permission.READ_PRECISE_PHONE_STATE, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static final int LISTEN_BARRING_INFO = -2147483648; // 0x80000000
|
||||
field @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public static final int LISTEN_CALL_DISCONNECT_CAUSES = 33554432; // 0x2000000
|
||||
field @Deprecated public static final int LISTEN_CALL_FORWARDING_INDICATOR = 8; // 0x8
|
||||
field @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public static final int LISTEN_CALL_FORWARDING_INDICATOR = 8; // 0x8
|
||||
field @Deprecated public static final int LISTEN_CALL_STATE = 32; // 0x20
|
||||
field @Deprecated public static final int LISTEN_CELL_INFO = 1024; // 0x400
|
||||
field @Deprecated public static final int LISTEN_CELL_LOCATION = 16; // 0x10
|
||||
field @Deprecated @RequiresPermission(allOf={android.Manifest.permission.READ_PHONE_STATE, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static final int LISTEN_CELL_INFO = 1024; // 0x400
|
||||
field @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static final int LISTEN_CELL_LOCATION = 16; // 0x10
|
||||
field @Deprecated public static final int LISTEN_DATA_ACTIVITY = 128; // 0x80
|
||||
field @Deprecated public static final int LISTEN_DATA_CONNECTION_STATE = 64; // 0x40
|
||||
field @Deprecated public static final int LISTEN_DISPLAY_INFO_CHANGED = 1048576; // 0x100000
|
||||
field @Deprecated public static final int LISTEN_EMERGENCY_NUMBER_LIST = 16777216; // 0x1000000
|
||||
field @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public static final int LISTEN_EMERGENCY_NUMBER_LIST = 16777216; // 0x1000000
|
||||
field @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public static final int LISTEN_IMS_CALL_DISCONNECT_CAUSES = 134217728; // 0x8000000
|
||||
field @Deprecated public static final int LISTEN_MESSAGE_WAITING_INDICATOR = 4; // 0x4
|
||||
field @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public static final int LISTEN_MESSAGE_WAITING_INDICATOR = 4; // 0x4
|
||||
field @Deprecated public static final int LISTEN_NONE = 0; // 0x0
|
||||
field @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public static final int LISTEN_PRECISE_DATA_CONNECTION_STATE = 4096; // 0x1000
|
||||
field @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public static final int LISTEN_REGISTRATION_FAILURE = 1073741824; // 0x40000000
|
||||
field @Deprecated @RequiresPermission(allOf={android.Manifest.permission.READ_PRECISE_PHONE_STATE, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static final int LISTEN_REGISTRATION_FAILURE = 1073741824; // 0x40000000
|
||||
field @Deprecated public static final int LISTEN_SERVICE_STATE = 1; // 0x1
|
||||
field @Deprecated public static final int LISTEN_SIGNAL_STRENGTH = 2; // 0x2
|
||||
field @Deprecated public static final int LISTEN_SIGNAL_STRENGTHS = 256; // 0x100
|
||||
@@ -42455,10 +42455,6 @@ package android.telephony {
|
||||
method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public void onActiveDataSubscriptionIdChanged(int);
|
||||
}
|
||||
|
||||
public static interface TelephonyCallback.AlwaysReportedSignalStrengthListener {
|
||||
method @RequiresPermission("android.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH") public void onSignalStrengthsChanged(@NonNull android.telephony.SignalStrength);
|
||||
}
|
||||
|
||||
public static interface TelephonyCallback.BarringInfoListener {
|
||||
method @RequiresPermission(allOf={android.Manifest.permission.READ_PRECISE_PHONE_STATE, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void onBarringInfoChanged(@NonNull android.telephony.BarringInfo);
|
||||
}
|
||||
@@ -42480,7 +42476,7 @@ package android.telephony {
|
||||
}
|
||||
|
||||
public static interface TelephonyCallback.CellInfoListener {
|
||||
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public void onCellInfoChanged(@NonNull java.util.List<android.telephony.CellInfo>);
|
||||
method @RequiresPermission(allOf={android.Manifest.permission.READ_PHONE_STATE, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void onCellInfoChanged(@NonNull java.util.List<android.telephony.CellInfo>);
|
||||
}
|
||||
|
||||
public static interface TelephonyCallback.CellLocationListener {
|
||||
@@ -42488,15 +42484,15 @@ package android.telephony {
|
||||
}
|
||||
|
||||
public static interface TelephonyCallback.DataActivationStateListener {
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void onDataActivationStateChanged(int);
|
||||
method public void onDataActivationStateChanged(int);
|
||||
}
|
||||
|
||||
public static interface TelephonyCallback.DataActivityListener {
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void onDataActivity(int);
|
||||
method public void onDataActivity(int);
|
||||
}
|
||||
|
||||
public static interface TelephonyCallback.DataConnectionStateListener {
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void onDataConnectionStateChanged(int, int);
|
||||
method public void onDataConnectionStateChanged(int, int);
|
||||
}
|
||||
|
||||
public static interface TelephonyCallback.DisplayInfoListener {
|
||||
@@ -42528,15 +42524,15 @@ package android.telephony {
|
||||
}
|
||||
|
||||
public static interface TelephonyCallback.ServiceStateListener {
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void onServiceStateChanged(@NonNull android.telephony.ServiceState);
|
||||
method public void onServiceStateChanged(@NonNull android.telephony.ServiceState);
|
||||
}
|
||||
|
||||
public static interface TelephonyCallback.SignalStrengthsListener {
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void onSignalStrengthsChanged(@NonNull android.telephony.SignalStrength);
|
||||
method public void onSignalStrengthsChanged(@NonNull android.telephony.SignalStrength);
|
||||
}
|
||||
|
||||
public static interface TelephonyCallback.UserMobileDataStateListener {
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void onUserMobileDataStateChanged(boolean);
|
||||
method public void onUserMobileDataStateChanged(boolean);
|
||||
}
|
||||
|
||||
public final class TelephonyDisplayInfo implements android.os.Parcelable {
|
||||
|
||||
@@ -11372,15 +11372,15 @@ package android.telephony {
|
||||
}
|
||||
|
||||
@Deprecated public class PhoneStateListener {
|
||||
method @Deprecated public void onCallAttributesChanged(@NonNull android.telephony.CallAttributes);
|
||||
method @Deprecated public void onOutgoingEmergencyCall(@NonNull android.telephony.emergency.EmergencyNumber);
|
||||
method @Deprecated public void onOutgoingEmergencyCall(@NonNull android.telephony.emergency.EmergencyNumber, int);
|
||||
method @Deprecated public void onOutgoingEmergencySms(@NonNull android.telephony.emergency.EmergencyNumber);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public void onCallAttributesChanged(@NonNull android.telephony.CallAttributes);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION) public void onOutgoingEmergencyCall(@NonNull android.telephony.emergency.EmergencyNumber);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION) public void onOutgoingEmergencyCall(@NonNull android.telephony.emergency.EmergencyNumber, int);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION) public void onOutgoingEmergencySms(@NonNull android.telephony.emergency.EmergencyNumber);
|
||||
method @Deprecated public void onOutgoingEmergencySms(@NonNull android.telephony.emergency.EmergencyNumber, int);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public void onPreciseCallStateChanged(@NonNull android.telephony.PreciseCallState);
|
||||
method @Deprecated public void onRadioPowerStateChanged(int);
|
||||
method @Deprecated public void onSrvccStateChanged(int);
|
||||
method @Deprecated public void onVoiceActivationStateChanged(int);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void onRadioPowerStateChanged(int);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void onSrvccStateChanged(int);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void onVoiceActivationStateChanged(int);
|
||||
field @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public static final int LISTEN_CALL_ATTRIBUTES_CHANGED = 67108864; // 0x4000000
|
||||
field @Deprecated @RequiresPermission(android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION) public static final int LISTEN_OUTGOING_EMERGENCY_CALL = 268435456; // 0x10000000
|
||||
field @Deprecated @RequiresPermission(android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION) public static final int LISTEN_OUTGOING_EMERGENCY_SMS = 536870912; // 0x20000000
|
||||
@@ -11729,14 +11729,14 @@ package android.telephony {
|
||||
public class TelephonyCallback {
|
||||
field @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public static final int EVENT_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGED = 23; // 0x17
|
||||
field @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public static final int EVENT_ALLOWED_NETWORK_TYPE_LIST_CHANGED = 35; // 0x23
|
||||
field @RequiresPermission("android.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH") public static final int EVENT_ALWAYS_REPORTED_SIGNAL_STRENGTH_CHANGED = 10; // 0xa
|
||||
field public static final int EVENT_ALWAYS_REPORTED_SIGNAL_STRENGTH_CHANGED = 10; // 0xa
|
||||
field @RequiresPermission(allOf={android.Manifest.permission.READ_PRECISE_PHONE_STATE, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static final int EVENT_BARRING_INFO_CHANGED = 32; // 0x20
|
||||
field @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public static final int EVENT_CALL_ATTRIBUTES_CHANGED = 27; // 0x1b
|
||||
field @RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE) public static final int EVENT_CALL_DISCONNECT_CAUSE_CHANGED = 26; // 0x1a
|
||||
field @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public static final int EVENT_CALL_FORWARDING_INDICATOR_CHANGED = 4; // 0x4
|
||||
field public static final int EVENT_CALL_STATE_CHANGED = 6; // 0x6
|
||||
field public static final int EVENT_CARRIER_NETWORK_CHANGED = 17; // 0x11
|
||||
field @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static final int EVENT_CELL_INFO_CHANGED = 11; // 0xb
|
||||
field @RequiresPermission(allOf={android.Manifest.permission.READ_PHONE_STATE, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static final int EVENT_CELL_INFO_CHANGED = 11; // 0xb
|
||||
field @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static final int EVENT_CELL_LOCATION_CHANGED = 5; // 0x5
|
||||
field public static final int EVENT_DATA_ACTIVATION_STATE_CHANGED = 19; // 0x13
|
||||
field public static final int EVENT_DATA_ACTIVITY_CHANGED = 8; // 0x8
|
||||
@@ -11791,7 +11791,7 @@ package android.telephony {
|
||||
}
|
||||
|
||||
public static interface TelephonyCallback.PhoneCapabilityListener {
|
||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void onPhoneCapabilityChanged(@NonNull android.telephony.PhoneCapability);
|
||||
method public void onPhoneCapabilityChanged(@NonNull android.telephony.PhoneCapability);
|
||||
}
|
||||
|
||||
public static interface TelephonyCallback.PreciseCallStateListener {
|
||||
|
||||
@@ -110,6 +110,7 @@ public class PhoneStateListener {
|
||||
* @deprecated Use {@link TelephonyCallback.MessageWaitingIndicatorListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public static final int LISTEN_MESSAGE_WAITING_INDICATOR = 0x00000004;
|
||||
|
||||
/**
|
||||
@@ -123,6 +124,7 @@ public class PhoneStateListener {
|
||||
* @deprecated Use {@link TelephonyCallback.CallForwardingIndicatorListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public static final int LISTEN_CALL_FORWARDING_INDICATOR = 0x00000008;
|
||||
|
||||
/**
|
||||
@@ -141,6 +143,7 @@ public class PhoneStateListener {
|
||||
* @deprecated Use {@link TelephonyCallback.CellLocationListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION)
|
||||
public static final int LISTEN_CELL_LOCATION = 0x00000010;
|
||||
|
||||
/**
|
||||
@@ -194,7 +197,7 @@ public class PhoneStateListener {
|
||||
* @see #onSignalStrengthsChanged
|
||||
*
|
||||
* @hide
|
||||
* @deprecated Use {@link TelephonyCallback.AlwaysReportedSignalStrengthListener}
|
||||
* @deprecated Use TelephonyManager#setSignalStrengthUpdateRequest
|
||||
* instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@@ -204,13 +207,18 @@ public class PhoneStateListener {
|
||||
/**
|
||||
* Listen for changes to observed cell info.
|
||||
*
|
||||
* Listening to this event requires the {@link Manifest.permission#ACCESS_FINE_LOCATION}
|
||||
* Listening to this event requires the {@link Manifest.permission#READ_PHONE_STATE} and
|
||||
* {@link Manifest.permission#ACCESS_FINE_LOCATION}
|
||||
* permission.
|
||||
*
|
||||
* @see #onCellInfoChanged
|
||||
* @deprecated Use {@link TelephonyCallback.CellInfoListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(allOf = {
|
||||
Manifest.permission.READ_PHONE_STATE,
|
||||
Manifest.permission.ACCESS_FINE_LOCATION
|
||||
})
|
||||
public static final int LISTEN_CELL_INFO = 0x00000400;
|
||||
|
||||
/**
|
||||
@@ -261,7 +269,7 @@ public class PhoneStateListener {
|
||||
*
|
||||
* <p>Requires permission {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE}
|
||||
*
|
||||
* @see #onServiceStateChanged(ServiceState)
|
||||
* @see #onSrvccStateChanged
|
||||
* @hide
|
||||
* @deprecated Use {@link TelephonyCallback.SrvccStateListener} instead.
|
||||
*/
|
||||
@@ -376,6 +384,7 @@ public class PhoneStateListener {
|
||||
* @deprecated Use {@link TelephonyCallback.ActiveDataSubscriptionIdListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public static final int LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE = 0x00400000;
|
||||
|
||||
/**
|
||||
@@ -399,6 +408,7 @@ public class PhoneStateListener {
|
||||
* @deprecated Use {@link TelephonyCallback.EmergencyNumberListListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public static final int LISTEN_EMERGENCY_NUMBER_LIST = 0x01000000;
|
||||
|
||||
/**
|
||||
@@ -487,7 +497,10 @@ public class PhoneStateListener {
|
||||
* @deprecated Use {@link TelephonyCallback.RegistrationFailedListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(Manifest.permission.READ_PRECISE_PHONE_STATE)
|
||||
@RequiresPermission(allOf = {
|
||||
Manifest.permission.READ_PRECISE_PHONE_STATE,
|
||||
Manifest.permission.ACCESS_FINE_LOCATION
|
||||
})
|
||||
public static final int LISTEN_REGISTRATION_FAILURE = 0x40000000;
|
||||
|
||||
/**
|
||||
@@ -503,7 +516,10 @@ public class PhoneStateListener {
|
||||
* @deprecated Use {@link TelephonyCallback.BarringInfoListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(Manifest.permission.READ_PRECISE_PHONE_STATE)
|
||||
@RequiresPermission(allOf = {
|
||||
Manifest.permission.READ_PRECISE_PHONE_STATE,
|
||||
Manifest.permission.ACCESS_FINE_LOCATION
|
||||
})
|
||||
public static final int LISTEN_BARRING_INFO = 0x80000000;
|
||||
|
||||
/*
|
||||
@@ -650,6 +666,7 @@ public class PhoneStateListener {
|
||||
* @deprecated Use {@link TelephonyCallback.MessageWaitingIndicatorListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public void onMessageWaitingIndicatorChanged(boolean mwi) {
|
||||
// default implementation empty
|
||||
}
|
||||
@@ -666,6 +683,7 @@ public class PhoneStateListener {
|
||||
* @deprecated Use {@link TelephonyCallback.CallForwardingIndicatorListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public void onCallForwardingIndicatorChanged(boolean cfi) {
|
||||
// default implementation empty
|
||||
}
|
||||
@@ -682,6 +700,7 @@ public class PhoneStateListener {
|
||||
* @deprecated Use {@link TelephonyCallback.CellLocationListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION)
|
||||
public void onCellLocationChanged(CellLocation location) {
|
||||
// default implementation empty
|
||||
}
|
||||
@@ -801,6 +820,10 @@ public class PhoneStateListener {
|
||||
* @param cellInfo is the list of currently visible cells.
|
||||
* @deprecated Use {@link TelephonyCallback.CellInfoListener} instead.
|
||||
*/
|
||||
@RequiresPermission(allOf = {
|
||||
Manifest.permission.READ_PHONE_STATE,
|
||||
Manifest.permission.ACCESS_FINE_LOCATION
|
||||
})
|
||||
@Deprecated
|
||||
public void onCellInfoChanged(List<CellInfo> cellInfo) {
|
||||
// default implementation empty
|
||||
@@ -875,14 +898,14 @@ public class PhoneStateListener {
|
||||
* subId. Otherwise, this callback applies to
|
||||
* {@link SubscriptionManager#getDefaultSubscriptionId()}.
|
||||
*
|
||||
* <p>Requires permission {@link android.Manifest.permission#MODIFY_PHONE_STATE}
|
||||
* <p>Requires permission {@link android.Manifest.permission#READ_PRECISE_PHONE_STATE}
|
||||
* or the calling app has carrier privileges
|
||||
* (see {@link TelephonyManager#hasCarrierPrivileges}).
|
||||
*
|
||||
* @param dataConnectionState {@link PreciseDataConnectionState}
|
||||
* @deprecated Use {@link TelephonyCallback.PreciseDataConnectionStateListener} instead.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
|
||||
@RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE)
|
||||
@Deprecated
|
||||
public void onPreciseDataConnectionStateChanged(
|
||||
@NonNull PreciseDataConnectionState dataConnectionState) {
|
||||
@@ -924,6 +947,7 @@ public class PhoneStateListener {
|
||||
*/
|
||||
@SystemApi
|
||||
@Deprecated
|
||||
@RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
|
||||
public void onSrvccStateChanged(@SrvccState int srvccState) {
|
||||
// default implementation empty
|
||||
}
|
||||
@@ -944,6 +968,7 @@ public class PhoneStateListener {
|
||||
*/
|
||||
@SystemApi
|
||||
@Deprecated
|
||||
@RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
|
||||
public void onVoiceActivationStateChanged(@SimActivationState int state) {
|
||||
// default implementation empty
|
||||
}
|
||||
@@ -1026,6 +1051,7 @@ public class PhoneStateListener {
|
||||
* @deprecated Use {@link TelephonyCallback.EmergencyNumberListListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public void onEmergencyNumberListChanged(
|
||||
@NonNull Map<Integer, List<EmergencyNumber>> emergencyNumberList) {
|
||||
// default implementation empty
|
||||
@@ -1043,6 +1069,7 @@ public class PhoneStateListener {
|
||||
*/
|
||||
@SystemApi
|
||||
@Deprecated
|
||||
@RequiresPermission(Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION)
|
||||
public void onOutgoingEmergencyCall(@NonNull EmergencyNumber placedEmergencyNumber) {
|
||||
// default implementation empty
|
||||
}
|
||||
@@ -1068,6 +1095,7 @@ public class PhoneStateListener {
|
||||
*/
|
||||
@SystemApi
|
||||
@Deprecated
|
||||
@RequiresPermission(Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION)
|
||||
public void onOutgoingEmergencyCall(@NonNull EmergencyNumber placedEmergencyNumber,
|
||||
int subscriptionId) {
|
||||
// Default implementation for backwards compatibility
|
||||
@@ -1086,6 +1114,7 @@ public class PhoneStateListener {
|
||||
*/
|
||||
@SystemApi
|
||||
@Deprecated
|
||||
@RequiresPermission(Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION)
|
||||
public void onOutgoingEmergencySms(@NonNull EmergencyNumber sentEmergencyNumber) {
|
||||
// default implementation empty
|
||||
}
|
||||
@@ -1158,6 +1187,7 @@ public class PhoneStateListener {
|
||||
* @deprecated Use {@link TelephonyCallback.ActiveDataSubscriptionIdListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public void onActiveDataSubscriptionIdChanged(int subId) {
|
||||
// default implementation empty
|
||||
}
|
||||
@@ -1178,6 +1208,7 @@ public class PhoneStateListener {
|
||||
*/
|
||||
@SystemApi
|
||||
@Deprecated
|
||||
@RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE)
|
||||
public void onCallAttributesChanged(@NonNull CallAttributes callAttributes) {
|
||||
// default implementation empty
|
||||
}
|
||||
@@ -1199,6 +1230,7 @@ public class PhoneStateListener {
|
||||
*/
|
||||
@SystemApi
|
||||
@Deprecated
|
||||
@RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
|
||||
public void onRadioPowerStateChanged(@RadioPowerState int state) {
|
||||
// default implementation empty
|
||||
}
|
||||
@@ -1253,6 +1285,10 @@ public class PhoneStateListener {
|
||||
* @deprecated Use {@link TelephonyCallback.RegistrationFailedListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(allOf = {
|
||||
Manifest.permission.READ_PRECISE_PHONE_STATE,
|
||||
Manifest.permission.ACCESS_FINE_LOCATION
|
||||
})
|
||||
public void onRegistrationFailed(@NonNull CellIdentity cellIdentity, @NonNull String chosenPlmn,
|
||||
int domain, int causeCode, int additionalCauseCode) {
|
||||
// default implementation empty
|
||||
@@ -1269,6 +1305,10 @@ public class PhoneStateListener {
|
||||
* @deprecated Use {@link TelephonyCallback.BarringInfoListener} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@RequiresPermission(allOf = {
|
||||
Manifest.permission.READ_PRECISE_PHONE_STATE,
|
||||
Manifest.permission.ACCESS_FINE_LOCATION
|
||||
})
|
||||
public void onBarringInfoChanged(@NonNull BarringInfo barringInfo) {
|
||||
// default implementation empty
|
||||
}
|
||||
|
||||
@@ -218,10 +218,9 @@ public class TelephonyCallback {
|
||||
* even in some situations such as the screen of the device is off.
|
||||
*
|
||||
* @hide
|
||||
* @see AlwaysReportedSignalStrengthListener#onSignalStrengthsChanged
|
||||
* @see TelephonyManager#setSignalStrengthUpdateRequest
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(android.Manifest.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH)
|
||||
public static final int EVENT_ALWAYS_REPORTED_SIGNAL_STRENGTH_CHANGED = 10;
|
||||
|
||||
/**
|
||||
@@ -231,8 +230,10 @@ public class TelephonyCallback {
|
||||
* @see CellInfoListener#onCellInfoChanged
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION)
|
||||
public static final int EVENT_CELL_INFO_CHANGED = 11;
|
||||
@RequiresPermission(allOf = {
|
||||
Manifest.permission.READ_PHONE_STATE,
|
||||
Manifest.permission.ACCESS_FINE_LOCATION
|
||||
}) public static final int EVENT_CELL_INFO_CHANGED = 11;
|
||||
|
||||
/**
|
||||
* Event for {@link android.telephony.Annotation.PreciseCallStates} of ringing,
|
||||
@@ -369,9 +370,10 @@ public class TelephonyCallback {
|
||||
|
||||
/**
|
||||
* Event for changes to active data subscription ID. Active data subscription is
|
||||
* the current subscription used to setup Cellular Internet data. For example,
|
||||
* it could be the current active opportunistic subscription in use, or the
|
||||
* subscription user selected as default data subscription in DSDS mode.
|
||||
* the current subscription used to setup Cellular Internet data. The data is only active on the
|
||||
* subscription at a time, even it is multi-SIM mode. For example, it could be the current
|
||||
* active opportunistic subscription in use, or the subscription user selected as default data
|
||||
* subscription in DSDS mode.
|
||||
*
|
||||
* <p>Requires permission {@link android.Manifest.permission#READ_PHONE_STATE} or the calling
|
||||
* app has carrier privileges (see {@link TelephonyManager#hasCarrierPrivileges}).
|
||||
@@ -668,8 +670,7 @@ public class TelephonyCallback {
|
||||
* @see ServiceState#STATE_OUT_OF_SERVICE
|
||||
* @see ServiceState#STATE_POWER_OFF
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
|
||||
public void onServiceStateChanged(@NonNull ServiceState serviceState);
|
||||
void onServiceStateChanged(@NonNull ServiceState serviceState);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -687,7 +688,7 @@ public class TelephonyCallback {
|
||||
* {@link SubscriptionManager#getDefaultSubscriptionId()}.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public void onMessageWaitingIndicatorChanged(boolean mwi);
|
||||
void onMessageWaitingIndicatorChanged(boolean mwi);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -706,7 +707,7 @@ public class TelephonyCallback {
|
||||
* {@link SubscriptionManager#getDefaultSubscriptionId()}.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public void onCallForwardingIndicatorChanged(boolean cfi);
|
||||
void onCallForwardingIndicatorChanged(boolean cfi);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -724,7 +725,7 @@ public class TelephonyCallback {
|
||||
* {@link SubscriptionManager#getDefaultSubscriptionId()}.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION)
|
||||
public void onCellLocationChanged(@NonNull CellLocation location);
|
||||
void onCellLocationChanged(@NonNull CellLocation location);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -753,7 +754,7 @@ public class TelephonyCallback {
|
||||
* @param state the current call state
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public void onCallStateChanged(@Annotation.CallState int state);
|
||||
void onCallStateChanged(@Annotation.CallState int state);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -777,9 +778,8 @@ public class TelephonyCallback {
|
||||
* @see TelephonyManager#DATA_CONNECTED
|
||||
* @see TelephonyManager#DATA_SUSPENDED
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
|
||||
public void onDataConnectionStateChanged(@TelephonyManager.DataState int state,
|
||||
@Annotation.NetworkType int networkType);
|
||||
void onDataConnectionStateChanged(@TelephonyManager.DataState int state,
|
||||
@Annotation.NetworkType int networkType);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -802,8 +802,7 @@ public class TelephonyCallback {
|
||||
* @see TelephonyManager#DATA_ACTIVITY_INOUT
|
||||
* @see TelephonyManager#DATA_ACTIVITY_DORMANT
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
|
||||
public void onDataActivity(@Annotation.DataActivityType int direction);
|
||||
void onDataActivity(@Annotation.DataActivityType int direction);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -820,27 +819,7 @@ public class TelephonyCallback {
|
||||
* subscription ID. Otherwise, this callback applies to
|
||||
* {@link SubscriptionManager#getDefaultSubscriptionId()}.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
|
||||
public void onSignalStrengthsChanged(@NonNull SignalStrength signalStrength);
|
||||
}
|
||||
|
||||
/**
|
||||
* Interface for network signal strengths callback which always reported from modem.
|
||||
*/
|
||||
public interface AlwaysReportedSignalStrengthListener {
|
||||
/**
|
||||
* Callback always invoked from modem when network signal strengths changes on the
|
||||
* registered subscription.
|
||||
* Note, the registration subscription ID comes from {@link TelephonyManager} object
|
||||
* which registers TelephonyCallback by
|
||||
* {@link TelephonyManager#registerTelephonyCallback(Executor, TelephonyCallback)}.
|
||||
* If this TelephonyManager object was created with
|
||||
* {@link TelephonyManager#createForSubscriptionId(int)}, then the callback applies to the
|
||||
* subscription ID. Otherwise, this callback applies to
|
||||
* {@link SubscriptionManager#getDefaultSubscriptionId()}.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH)
|
||||
public void onSignalStrengthsChanged(@NonNull SignalStrength signalStrength);
|
||||
void onSignalStrengthsChanged(@NonNull SignalStrength signalStrength);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -860,8 +839,11 @@ public class TelephonyCallback {
|
||||
*
|
||||
* @param cellInfo is the list of currently visible cells.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION)
|
||||
public void onCellInfoChanged(@NonNull List<CellInfo> cellInfo);
|
||||
@RequiresPermission(allOf = {
|
||||
Manifest.permission.READ_PHONE_STATE,
|
||||
Manifest.permission.ACCESS_FINE_LOCATION
|
||||
})
|
||||
void onCellInfoChanged(@NonNull List<CellInfo> cellInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -884,7 +866,7 @@ public class TelephonyCallback {
|
||||
* @param callState {@link PreciseCallState}
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE)
|
||||
public void onPreciseCallStateChanged(@NonNull PreciseCallState callState);
|
||||
void onPreciseCallStateChanged(@NonNull PreciseCallState callState);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -905,8 +887,8 @@ public class TelephonyCallback {
|
||||
* @param preciseDisconnectCause {@link PreciseDisconnectCause}.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE)
|
||||
public void onCallDisconnectCauseChanged(@Annotation.DisconnectCauses int disconnectCause,
|
||||
@Annotation.PreciseDisconnectCauses int preciseDisconnectCause);
|
||||
void onCallDisconnectCauseChanged(@Annotation.DisconnectCauses int disconnectCause,
|
||||
@Annotation.PreciseDisconnectCauses int preciseDisconnectCause);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -926,7 +908,7 @@ public class TelephonyCallback {
|
||||
* @param imsReasonInfo {@link ImsReasonInfo} contains details on why IMS call failed.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE)
|
||||
public void onImsCallDisconnectCauseChanged(@NonNull ImsReasonInfo imsReasonInfo);
|
||||
void onImsCallDisconnectCauseChanged(@NonNull ImsReasonInfo imsReasonInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -952,7 +934,7 @@ public class TelephonyCallback {
|
||||
* @param dataConnectionState {@link PreciseDataConnectionState}
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.READ_PRECISE_PHONE_STATE)
|
||||
public void onPreciseDataConnectionStateChanged(
|
||||
void onPreciseDataConnectionStateChanged(
|
||||
@NonNull PreciseDataConnectionState dataConnectionState);
|
||||
}
|
||||
|
||||
@@ -976,7 +958,7 @@ public class TelephonyCallback {
|
||||
* {@link SubscriptionManager#getDefaultSubscriptionId()}.
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
|
||||
public void onSrvccStateChanged(@Annotation.SrvccState int srvccState);
|
||||
void onSrvccStateChanged(@Annotation.SrvccState int srvccState);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1000,7 +982,7 @@ public class TelephonyCallback {
|
||||
* @param state is the current SIM voice activation state
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
|
||||
public void onVoiceActivationStateChanged(@Annotation.SimActivationState int state);
|
||||
void onVoiceActivationStateChanged(@Annotation.SimActivationState int state);
|
||||
|
||||
}
|
||||
|
||||
@@ -1021,8 +1003,7 @@ public class TelephonyCallback {
|
||||
*
|
||||
* @param state is the current SIM data activation state
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
|
||||
public void onDataActivationStateChanged(@Annotation.SimActivationState int state);
|
||||
void onDataActivationStateChanged(@Annotation.SimActivationState int state);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1043,8 +1024,7 @@ public class TelephonyCallback {
|
||||
* @param enabled indicates whether the current user mobile data state is enabled or
|
||||
* disabled.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
|
||||
public void onUserMobileDataStateChanged(boolean enabled);
|
||||
void onUserMobileDataStateChanged(boolean enabled);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1058,7 +1038,7 @@ public class TelephonyCallback {
|
||||
*
|
||||
* @param telephonyDisplayInfo The display information.
|
||||
*/
|
||||
public void onDisplayInfoChanged(@NonNull TelephonyDisplayInfo telephonyDisplayInfo);
|
||||
void onDisplayInfoChanged(@NonNull TelephonyDisplayInfo telephonyDisplayInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1089,8 +1069,8 @@ public class TelephonyCallback {
|
||||
* empty.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public void onEmergencyNumberListChanged(
|
||||
@NonNull Map<Integer, List<EmergencyNumber>> emergencyNumberList);
|
||||
void onEmergencyNumberListChanged(@NonNull Map<Integer,
|
||||
List<EmergencyNumber>> emergencyNumberList);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1118,8 +1098,8 @@ public class TelephonyCallback {
|
||||
* {@link SubscriptionManager#INVALID_SUBSCRIPTION_ID}.
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION)
|
||||
public void onOutgoingEmergencyCall(@NonNull EmergencyNumber placedEmergencyNumber,
|
||||
int subscriptionId);
|
||||
void onOutgoingEmergencyCall(@NonNull EmergencyNumber placedEmergencyNumber,
|
||||
int subscriptionId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1139,8 +1119,8 @@ public class TelephonyCallback {
|
||||
* @param subscriptionId The subscription ID used to send the emergency sms.
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION)
|
||||
public void onOutgoingEmergencySms(@NonNull EmergencyNumber sentEmergencyNumber,
|
||||
int subscriptionId);
|
||||
void onOutgoingEmergencySms(@NonNull EmergencyNumber sentEmergencyNumber,
|
||||
int subscriptionId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1156,8 +1136,7 @@ public class TelephonyCallback {
|
||||
*
|
||||
* @param capability the new phone capability
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
|
||||
public void onPhoneCapabilityChanged(@NonNull PhoneCapability capability);
|
||||
void onPhoneCapabilityChanged(@NonNull PhoneCapability capability);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1168,13 +1147,14 @@ public class TelephonyCallback {
|
||||
* Callback invoked when active data subscription ID changes.
|
||||
* Note, this callback triggers regardless of registered subscription.
|
||||
*
|
||||
* @param subId current subscription used to setup Cellular Internet data.
|
||||
* @param subId current subscription used to setup Cellular Internet data. The data is
|
||||
* only active on the subscription at a time, even it is multi-SIM mode.
|
||||
* For example, it could be the current active opportunistic subscription
|
||||
* in use, or the subscription user selected as default data subscription in
|
||||
* DSDS mode.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public void onActiveDataSubscriptionIdChanged(int subId);
|
||||
void onActiveDataSubscriptionIdChanged(int subId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1197,7 +1177,7 @@ public class TelephonyCallback {
|
||||
* @param state the modem radio power state
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
|
||||
public void onRadioPowerStateChanged(@Annotation.RadioPowerState int state);
|
||||
void onRadioPowerStateChanged(@Annotation.RadioPowerState int state);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1221,7 +1201,7 @@ public class TelephonyCallback {
|
||||
* @param active If the carrier network change is or shortly will be active,
|
||||
* {@code true} indicate that showing alternative UI, {@code false} otherwise.
|
||||
*/
|
||||
public void onCarrierNetworkChange(boolean active);
|
||||
void onCarrierNetworkChange(boolean active);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1263,9 +1243,8 @@ public class TelephonyCallback {
|
||||
Manifest.permission.READ_PRECISE_PHONE_STATE,
|
||||
Manifest.permission.ACCESS_FINE_LOCATION
|
||||
})
|
||||
public void onRegistrationFailed(@NonNull CellIdentity cellIdentity,
|
||||
@NonNull String chosenPlmn, @NetworkRegistrationInfo.Domain int domain, int causeCode,
|
||||
int additionalCauseCode);
|
||||
void onRegistrationFailed(@NonNull CellIdentity cellIdentity, @NonNull String chosenPlmn,
|
||||
@NetworkRegistrationInfo.Domain int domain, int causeCode, int additionalCauseCode);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1303,8 +1282,7 @@ public class TelephonyCallback {
|
||||
* long type value}.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
|
||||
void onAllowedNetworkTypesChanged(
|
||||
@TelephonyManager.AllowedNetworkTypesReason int reason,
|
||||
void onAllowedNetworkTypesChanged(@TelephonyManager.AllowedNetworkTypesReason int reason,
|
||||
@TelephonyManager.NetworkTypeBitMask long allowedNetworkType);
|
||||
}
|
||||
|
||||
@@ -1348,7 +1326,7 @@ public class TelephonyCallback {
|
||||
Manifest.permission.READ_PRECISE_PHONE_STATE,
|
||||
Manifest.permission.ACCESS_FINE_LOCATION
|
||||
})
|
||||
public void onBarringInfoChanged(@NonNull BarringInfo barringInfo);
|
||||
void onBarringInfoChanged(@NonNull BarringInfo barringInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1361,7 +1339,7 @@ public class TelephonyCallback {
|
||||
* @param configs List of the current {@link PhysicalChannelConfig}s
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.READ_PRECISE_PHONE_STATE)
|
||||
public void onPhysicalChannelConfigChanged(@NonNull List<PhysicalChannelConfig> configs);
|
||||
void onPhysicalChannelConfigChanged(@NonNull List<PhysicalChannelConfig> configs);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1379,8 +1357,7 @@ public class TelephonyCallback {
|
||||
* See {@link TelephonyManager.DataEnabledReason}.
|
||||
*/
|
||||
@RequiresPermission(Manifest.permission.READ_PRECISE_PHONE_STATE)
|
||||
public void onDataEnabledChanged(boolean enabled,
|
||||
@TelephonyManager.DataEnabledReason int reason);
|
||||
void onDataEnabledChanged(boolean enabled, @TelephonyManager.DataEnabledReason int reason);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -894,10 +894,6 @@ public class TelephonyRegistryManager {
|
||||
eventList.add(TelephonyCallback.EVENT_SIGNAL_STRENGTHS_CHANGED);
|
||||
}
|
||||
|
||||
if (telephonyCallback instanceof TelephonyCallback.AlwaysReportedSignalStrengthListener) {
|
||||
eventList.add(TelephonyCallback.EVENT_ALWAYS_REPORTED_SIGNAL_STRENGTH_CHANGED);
|
||||
}
|
||||
|
||||
if (telephonyCallback instanceof TelephonyCallback.CellInfoListener) {
|
||||
eventList.add(TelephonyCallback.EVENT_CELL_INFO_CHANGED);
|
||||
}
|
||||
|
||||
@@ -29,6 +29,8 @@ import android.annotation.Nullable;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.AppOpsManager;
|
||||
import android.app.compat.CompatChanges;
|
||||
import android.compat.annotation.ChangeId;
|
||||
import android.compat.annotation.EnabledSince;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -155,7 +157,6 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
int subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
|
||||
int phoneId = SubscriptionManager.INVALID_SIM_SLOT_INDEX;
|
||||
int targetSdk;
|
||||
|
||||
boolean matchTelephonyCallbackEvent(int event) {
|
||||
return (callback != null) && (this.eventList.contains(event));
|
||||
@@ -228,6 +229,54 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
TelecomManager.ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION, packageName,
|
||||
userHandle));
|
||||
}
|
||||
|
||||
/**
|
||||
* To check the SDK version for
|
||||
* {@link android.telephony.TelephonyCallback.ActiveDataSubscriptionIdListener} should add
|
||||
* {@link android.Manifest.permission#READ_PHONE_STATE} since Android 12.
|
||||
* @noinspection ConstantConditions
|
||||
*/
|
||||
public boolean isActiveDataSubIdReadPhoneStateEnforcedInPlatformCompat(String packageName,
|
||||
UserHandle userHandle) {
|
||||
return Binder.withCleanCallingIdentity(() -> CompatChanges.isChangeEnabled(
|
||||
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID, packageName,
|
||||
userHandle));
|
||||
}
|
||||
|
||||
/**
|
||||
* To check the SDK version for
|
||||
* {@link android.telephony.TelephonyCallback.CellInfoListener} should add
|
||||
* {@link android.Manifest.permission#READ_PHONE_STATE} since Android 12.
|
||||
* @noinspection ConstantConditions
|
||||
*/
|
||||
public boolean isCellInfoReadPhoneStateEnforcedInPlatformCompat(String packageName,
|
||||
UserHandle userHandle) {
|
||||
return Binder.withCleanCallingIdentity(() -> CompatChanges.isChangeEnabled(
|
||||
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO, packageName, userHandle));
|
||||
}
|
||||
|
||||
/**
|
||||
* To check the SDK version for
|
||||
* {@link android.telephony.TelephonyCallback.DisplayInfoListener} should remove
|
||||
* {@link android.Manifest.permission#READ_PHONE_STATE} since Android 12.
|
||||
* @noinspection ConstantConditions
|
||||
*/
|
||||
public boolean isDisplayInfoReadPhoneStateEnforcedInPlatformCompat(String packageName,
|
||||
UserHandle userHandle) {
|
||||
return Binder.withCleanCallingIdentity(() -> CompatChanges.isChangeEnabled(
|
||||
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO, packageName, userHandle));
|
||||
}
|
||||
|
||||
/**
|
||||
* Support backward compatibility for {@link android.telephony.TelephonyDisplayInfo}.
|
||||
*
|
||||
* @noinspection ConstantConditions
|
||||
*/
|
||||
public boolean isDisplayInfoNrAdvancedSupported(String packageName,
|
||||
UserHandle userHandle) {
|
||||
return Binder.withCleanCallingIdentity(() -> CompatChanges.isChangeEnabled(
|
||||
DISPLAY_INFO_NR_ADVANCED_SUPPORTED, packageName, userHandle));
|
||||
}
|
||||
}
|
||||
|
||||
private final Context mContext;
|
||||
@@ -346,6 +395,39 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
*/
|
||||
private List<Map<Pair<Integer, ApnSetting>, PreciseDataConnectionState>>
|
||||
mPreciseDataConnectionStates;
|
||||
/**
|
||||
* Support backward compatibility for {@link android.telephony.TelephonyDisplayInfo}.
|
||||
*/
|
||||
@ChangeId
|
||||
@EnabledSince(targetSdkVersion = Build.VERSION_CODES.S)
|
||||
private static final long DISPLAY_INFO_NR_ADVANCED_SUPPORTED = 181658987L;
|
||||
|
||||
/**
|
||||
* To check the SDK version for
|
||||
* {@link android.telephony.TelephonyCallback.DisplayInfoListener} should remove
|
||||
* {@link android.Manifest.permission#READ_PHONE_STATE} since Android 12.
|
||||
*/
|
||||
@ChangeId
|
||||
@EnabledSince(targetSdkVersion = Build.VERSION_CODES.S)
|
||||
private static final long REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO = 183164979L;
|
||||
|
||||
/**
|
||||
* To check the SDK version for
|
||||
* {@link android.telephony.TelephonyCallback.ActiveDataSubscriptionIdListener} should add
|
||||
* {@link android.Manifest.permission#READ_PHONE_STATE} since Android 12.
|
||||
*/
|
||||
@ChangeId
|
||||
@EnabledSince(targetSdkVersion = Build.VERSION_CODES.S)
|
||||
private static final long REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID
|
||||
= 182478738L;
|
||||
|
||||
/**
|
||||
* To check the SDK version for {@link android.telephony.TelephonyCallback.CellInfoListener}
|
||||
* should add {@link android.Manifest.permission#READ_PHONE_STATE} since Android 12.
|
||||
*/
|
||||
@ChangeId
|
||||
@EnabledSince(targetSdkVersion = Build.VERSION_CODES.S)
|
||||
private static final long REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO = 184323934L;
|
||||
|
||||
private static final Set<Integer> REQUIRE_PRECISE_PHONE_STATE_PERMISSION;
|
||||
static {
|
||||
@@ -379,13 +461,46 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
|| events.contains(TelephonyCallback.EVENT_BARRING_INFO_CHANGED);
|
||||
}
|
||||
|
||||
private boolean isPhoneStatePermissionRequired(Set<Integer> events, int targetSdk) {
|
||||
return events.contains(TelephonyCallback.EVENT_CALL_FORWARDING_INDICATOR_CHANGED)
|
||||
private boolean isPhoneStatePermissionRequired(Set<Integer> events, String callingPackage,
|
||||
UserHandle userHandle) {
|
||||
if (events.contains(TelephonyCallback.EVENT_CALL_FORWARDING_INDICATOR_CHANGED)
|
||||
|| events.contains(TelephonyCallback.EVENT_MESSAGE_WAITING_INDICATOR_CHANGED)
|
||||
|| events.contains(TelephonyCallback.EVENT_EMERGENCY_NUMBER_LIST_CHANGED)
|
||||
|| events.contains(TelephonyCallback.EVENT_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGED)
|
||||
|| (targetSdk <= android.os.Build.VERSION_CODES.R ? events.contains(
|
||||
TelephonyCallback.EVENT_DISPLAY_INFO_CHANGED) : false);
|
||||
|| events.contains(TelephonyCallback.EVENT_EMERGENCY_NUMBER_LIST_CHANGED)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Only check READ_PHONE_STATE for CALL_STATE_CHANGED for Android 12 or above.
|
||||
if ((events.contains(TelephonyCallback.EVENT_LEGACY_CALL_STATE_CHANGED)
|
||||
|| events.contains(TelephonyCallback.EVENT_CALL_STATE_CHANGED))
|
||||
&& mConfigurationProvider.isCallStateReadPhoneStateEnforcedInPlatformCompat(
|
||||
callingPackage, userHandle)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Only check READ_PHONE_STATE for ACTIVE_DATA_SUBSCRIPTION_ID_CHANGED for Android 12
|
||||
// or above.
|
||||
if (events.contains(TelephonyCallback.EVENT_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGED)
|
||||
&& mConfigurationProvider.isActiveDataSubIdReadPhoneStateEnforcedInPlatformCompat(
|
||||
callingPackage, userHandle)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Only check READ_PHONE_STATE for CELL_INFO_CHANGED for Android 12 or above.
|
||||
if (events.contains(TelephonyCallback.EVENT_CELL_INFO_CHANGED)
|
||||
&& mConfigurationProvider.isCellInfoReadPhoneStateEnforcedInPlatformCompat(
|
||||
callingPackage, userHandle)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Only check READ_PHONE_STATE for DISPLAY_INFO_CHANGED for Android 11 or older.
|
||||
// READ_PHONE_STATE is not required anymore after Android 12.
|
||||
if (events.contains(TelephonyCallback.EVENT_DISPLAY_INFO_CHANGED)
|
||||
&& !mConfigurationProvider.isDisplayInfoReadPhoneStateEnforcedInPlatformCompat(
|
||||
callingPackage, userHandle)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isPrecisePhoneStatePermissionRequired(Set<Integer> events) {
|
||||
@@ -902,12 +1017,11 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
remove(callback.asBinder());
|
||||
return;
|
||||
}
|
||||
int callerTargetSdk = TelephonyPermissions.getTargetSdk(mContext, callingPackage);
|
||||
|
||||
// Checks permission and throws SecurityException for disallowed operations. For pre-M
|
||||
// apps whose runtime permission has been revoked, we return immediately to skip sending
|
||||
// events to the app without crashing it.
|
||||
if (!checkListenerPermission(events, subId, callingPackage, callingFeatureId,
|
||||
"listen", callerTargetSdk)) {
|
||||
if (!checkListenerPermission(events, subId, callingPackage, callingFeatureId, "listen")) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -940,7 +1054,6 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
}
|
||||
r.phoneId = phoneId;
|
||||
r.eventList = events;
|
||||
r.targetSdk = callerTargetSdk;
|
||||
|
||||
if (DBG) {
|
||||
log("listen: Register r=" + r + " r.subId=" + r.subId + " phoneId=" + phoneId);
|
||||
@@ -1773,7 +1886,8 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
TelephonyCallback.EVENT_DISPLAY_INFO_CHANGED)
|
||||
&& idMatchWithoutDefaultPhoneCheck(r.subId, subId)) {
|
||||
try {
|
||||
if (r.targetSdk <= android.os.Build.VERSION_CODES.R) {
|
||||
if (!mConfigurationProvider.isDisplayInfoNrAdvancedSupported(
|
||||
r.callingPackage, Binder.getCallingUserHandle())) {
|
||||
telephonyDisplayInfo =
|
||||
getBackwardCompatibleTelephonyDisplayInfo(
|
||||
telephonyDisplayInfo);
|
||||
@@ -2922,7 +3036,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
}
|
||||
|
||||
private boolean checkListenerPermission(Set<Integer> events, int subId, String callingPackage,
|
||||
@Nullable String callingFeatureId, String message, int targetSdk) {
|
||||
@Nullable String callingFeatureId, String message) {
|
||||
LocationAccessPolicy.LocationPermissionQuery.Builder locationQueryBuilder =
|
||||
new LocationAccessPolicy.LocationPermissionQuery.Builder()
|
||||
.setCallingPackage(callingPackage)
|
||||
@@ -2958,26 +3072,13 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
|
||||
}
|
||||
}
|
||||
|
||||
if (isPhoneStatePermissionRequired(events, targetSdk)) {
|
||||
if (isPhoneStatePermissionRequired(events, callingPackage, Binder.getCallingUserHandle())) {
|
||||
if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
|
||||
mContext, subId, callingPackage, callingFeatureId, message)) {
|
||||
isPermissionCheckSuccessful = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Only check READ_PHONE_STATE for CALL_STATE_CHANGED for API 31+.
|
||||
if (mConfigurationProvider.isCallStateReadPhoneStateEnforcedInPlatformCompat(callingPackage,
|
||||
Binder.getCallingUserHandle())) {
|
||||
if (events.contains(TelephonyCallback.EVENT_LEGACY_CALL_STATE_CHANGED)
|
||||
|| events.contains(TelephonyCallback.EVENT_CALL_STATE_CHANGED)) {
|
||||
if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
|
||||
mContext, subId, callingPackage, callingFeatureId, message)) {
|
||||
throw new SecurityException("CALL_STATE_CHANGED event requires "
|
||||
+ "READ_PHONE_STATE");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isPrecisePhoneStatePermissionRequired(events)) {
|
||||
// check if calling app has either permission READ_PRECISE_PHONE_STATE
|
||||
// or with carrier privileges
|
||||
|
||||
Reference in New Issue
Block a user