Loading api/system-current.txt +197 −0 Original line number Diff line number Diff line Loading @@ -5044,6 +5044,83 @@ package android.telephony { field public static final java.lang.String KEY_CARRIER_SETUP_APP_STRING = "carrier_setup_app_string"; } public class DisconnectCause { field public static final int ALREADY_DIALING = 72; // 0x48 field public static final int ANSWERED_ELSEWHERE = 52; // 0x34 field public static final int BUSY = 4; // 0x4 field public static final int CALLING_DISABLED = 74; // 0x4a field public static final int CALL_BARRED = 20; // 0x14 field public static final int CALL_PULLED = 51; // 0x33 field public static final int CANT_CALL_WHILE_RINGING = 73; // 0x49 field public static final int CDMA_ACCESS_BLOCKED = 35; // 0x23 field public static final int CDMA_ACCESS_FAILURE = 32; // 0x20 field public static final int CDMA_ALREADY_ACTIVATED = 49; // 0x31 field public static final int CDMA_DROP = 27; // 0x1b field public static final int CDMA_INTERCEPT = 28; // 0x1c field public static final int CDMA_LOCKED_UNTIL_POWER_CYCLE = 26; // 0x1a field public static final int CDMA_NOT_EMERGENCY = 34; // 0x22 field public static final int CDMA_PREEMPTED = 33; // 0x21 field public static final int CDMA_REORDER = 29; // 0x1d field public static final int CDMA_RETRY_ORDER = 31; // 0x1f field public static final int CDMA_SO_REJECT = 30; // 0x1e field public static final int CONGESTION = 5; // 0x5 field public static final int CS_RESTRICTED = 22; // 0x16 field public static final int CS_RESTRICTED_EMERGENCY = 24; // 0x18 field public static final int CS_RESTRICTED_NORMAL = 23; // 0x17 field public static final int DATA_DISABLED = 54; // 0x36 field public static final int DATA_LIMIT_REACHED = 55; // 0x37 field public static final int DIALED_CALL_FORWARDING_WHILE_ROAMING = 57; // 0x39 field public static final int DIALED_MMI = 39; // 0x27 field public static final int DIAL_LOW_BATTERY = 62; // 0x3e field public static final int DIAL_MODIFIED_TO_DIAL = 48; // 0x30 field public static final int DIAL_MODIFIED_TO_DIAL_VIDEO = 66; // 0x42 field public static final int DIAL_MODIFIED_TO_SS = 47; // 0x2f field public static final int DIAL_MODIFIED_TO_USSD = 46; // 0x2e field public static final int DIAL_VIDEO_MODIFIED_TO_DIAL = 69; // 0x45 field public static final int DIAL_VIDEO_MODIFIED_TO_DIAL_VIDEO = 70; // 0x46 field public static final int DIAL_VIDEO_MODIFIED_TO_SS = 67; // 0x43 field public static final int DIAL_VIDEO_MODIFIED_TO_USSD = 68; // 0x44 field public static final int EMERGENCY_PERM_FAILURE = 64; // 0x40 field public static final int EMERGENCY_TEMP_FAILURE = 63; // 0x3f field public static final int ERROR_UNSPECIFIED = 36; // 0x24 field public static final int FDN_BLOCKED = 21; // 0x15 field public static final int ICC_ERROR = 19; // 0x13 field public static final int IMEI_NOT_ACCEPTED = 58; // 0x3a field public static final int IMS_ACCESS_BLOCKED = 60; // 0x3c field public static final int IMS_MERGED_SUCCESSFULLY = 45; // 0x2d field public static final int IMS_SIP_ALTERNATE_EMERGENCY_CALL = 71; // 0x47 field public static final int INCOMING_MISSED = 1; // 0x1 field public static final int INCOMING_REJECTED = 16; // 0x10 field public static final int INVALID_CREDENTIALS = 10; // 0xa field public static final int INVALID_NUMBER = 7; // 0x7 field public static final int LIMIT_EXCEEDED = 15; // 0xf field public static final int LOCAL = 3; // 0x3 field public static final int LOST_SIGNAL = 14; // 0xe field public static final int LOW_BATTERY = 61; // 0x3d field public static final int MAXIMUM_NUMBER_OF_CALLS_REACHED = 53; // 0x35 field public static final int MMI = 6; // 0x6 field public static final int NORMAL = 2; // 0x2 field public static final int NORMAL_UNSPECIFIED = 65; // 0x41 field public static final int NOT_DISCONNECTED = 0; // 0x0 field public static final int NOT_VALID = -1; // 0xffffffff field public static final int NO_PHONE_NUMBER_SUPPLIED = 38; // 0x26 field public static final int NUMBER_UNREACHABLE = 8; // 0x8 field public static final int OTASP_PROVISIONING_IN_PROCESS = 76; // 0x4c field public static final int OUTGOING_CANCELED = 44; // 0x2c field public static final int OUTGOING_FAILURE = 43; // 0x2b field public static final int OUT_OF_NETWORK = 11; // 0xb field public static final int OUT_OF_SERVICE = 18; // 0x12 field public static final int POWER_OFF = 17; // 0x11 field public static final int SERVER_ERROR = 12; // 0xc field public static final int SERVER_UNREACHABLE = 9; // 0x9 field public static final int TIMED_OUT = 13; // 0xd field public static final int TOO_MANY_ONGOING_CALLS = 75; // 0x4b field public static final int UNOBTAINABLE_NUMBER = 25; // 0x19 field public static final int VIDEO_CALL_NOT_ALLOWED_WHILE_TTY_ENABLED = 50; // 0x32 field public static final int VOICEMAIL_NUMBER_MISSING = 40; // 0x28 field public static final int WIFI_LOST = 59; // 0x3b } public class MbmsDownloadSession implements java.lang.AutoCloseable { field public static final java.lang.String MBMS_DOWNLOAD_SERVICE_ACTION = "android.telephony.action.EmbmsDownload"; } Loading Loading @@ -5132,14 +5209,134 @@ package android.telephony { } public class PhoneStateListener { method public void onCallDisconnectCauseChanged(int, int); method public void onPreciseCallStateChanged(android.telephony.PreciseCallState); method public void onRadioPowerStateChanged(int); method public void onSrvccStateChanged(int); method public void onVoiceActivationStateChanged(int); field public static final int LISTEN_CALL_DISCONNECT_CAUSES = 33554432; // 0x2000000 field public static final int LISTEN_PRECISE_CALL_STATE = 2048; // 0x800 field public static final int LISTEN_RADIO_POWER_STATE_CHANGED = 8388608; // 0x800000 field public static final int LISTEN_SRVCC_STATE_CHANGED = 16384; // 0x4000 field public static final int LISTEN_VOICE_ACTIVATION_STATE = 131072; // 0x20000 } public final class PreciseCallState implements android.os.Parcelable { method public int describeContents(); method public int getBackgroundCallState(); method public int getForegroundCallState(); method public int getRingingCallState(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.telephony.PreciseCallState> CREATOR; field public static final int PRECISE_CALL_STATE_ACTIVE = 1; // 0x1 field public static final int PRECISE_CALL_STATE_ALERTING = 4; // 0x4 field public static final int PRECISE_CALL_STATE_DIALING = 3; // 0x3 field public static final int PRECISE_CALL_STATE_DISCONNECTED = 7; // 0x7 field public static final int PRECISE_CALL_STATE_DISCONNECTING = 8; // 0x8 field public static final int PRECISE_CALL_STATE_HOLDING = 2; // 0x2 field public static final int PRECISE_CALL_STATE_IDLE = 0; // 0x0 field public static final int PRECISE_CALL_STATE_INCOMING = 5; // 0x5 field public static final int PRECISE_CALL_STATE_NOT_VALID = -1; // 0xffffffff field public static final int PRECISE_CALL_STATE_WAITING = 6; // 0x6 } public class PreciseDisconnectCause { field public static final int ACCESS_CLASS_BLOCKED = 260; // 0x104 field public static final int ACCESS_INFORMATION_DISCARDED = 43; // 0x2b field public static final int ACM_LIMIT_EXCEEDED = 68; // 0x44 field public static final int BEARER_CAPABILITY_NOT_AUTHORIZED = 57; // 0x39 field public static final int BEARER_NOT_AVAIL = 58; // 0x3a field public static final int BEARER_SERVICE_NOT_IMPLEMENTED = 65; // 0x41 field public static final int BUSY = 17; // 0x11 field public static final int CALL_BARRED = 240; // 0xf0 field public static final int CALL_REJECTED = 21; // 0x15 field public static final int CDMA_ACCESS_BLOCKED = 1009; // 0x3f1 field public static final int CDMA_ACCESS_FAILURE = 1006; // 0x3ee field public static final int CDMA_DROP = 1001; // 0x3e9 field public static final int CDMA_INTERCEPT = 1002; // 0x3ea field public static final int CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000; // 0x3e8 field public static final int CDMA_NOT_EMERGENCY = 1008; // 0x3f0 field public static final int CDMA_PREEMPTED = 1007; // 0x3ef field public static final int CDMA_REORDER = 1003; // 0x3eb field public static final int CDMA_RETRY_ORDER = 1005; // 0x3ed field public static final int CDMA_SO_REJECT = 1004; // 0x3ec field public static final int CHANNEL_NOT_AVAIL = 44; // 0x2c field public static final int CHANNEL_UNACCEPTABLE = 6; // 0x6 field public static final int CONDITIONAL_IE_ERROR = 100; // 0x64 field public static final int DESTINATION_OUT_OF_ORDER = 27; // 0x1b field public static final int ERROR_UNSPECIFIED = 65535; // 0xffff field public static final int FACILITY_REJECTED = 29; // 0x1d field public static final int FDN_BLOCKED = 241; // 0xf1 field public static final int IMEI_NOT_ACCEPTED = 243; // 0xf3 field public static final int IMSI_UNKNOWN_IN_VLR = 242; // 0xf2 field public static final int INCOMING_CALLS_BARRED_WITHIN_CUG = 55; // 0x37 field public static final int INCOMPATIBLE_DESTINATION = 88; // 0x58 field public static final int INFORMATION_ELEMENT_NON_EXISTENT = 99; // 0x63 field public static final int INTERWORKING_UNSPECIFIED = 127; // 0x7f field public static final int INVALID_MANDATORY_INFORMATION = 96; // 0x60 field public static final int INVALID_NUMBER_FORMAT = 28; // 0x1c field public static final int INVALID_TRANSACTION_IDENTIFIER = 81; // 0x51 field public static final int MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101; // 0x65 field public static final int MESSAGE_TYPE_NON_IMPLEMENTED = 97; // 0x61 field public static final int MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98; // 0x62 field public static final int NETWORK_DETACH = 261; // 0x105 field public static final int NETWORK_OUT_OF_ORDER = 38; // 0x26 field public static final int NETWORK_REJECT = 252; // 0xfc field public static final int NETWORK_RESP_TIMEOUT = 251; // 0xfb field public static final int NORMAL = 16; // 0x10 field public static final int NORMAL_UNSPECIFIED = 31; // 0x1f field public static final int NOT_VALID = -1; // 0xffffffff field public static final int NO_ANSWER_FROM_USER = 19; // 0x13 field public static final int NO_CIRCUIT_AVAIL = 34; // 0x22 field public static final int NO_DISCONNECT_CAUSE_AVAILABLE = 0; // 0x0 field public static final int NO_ROUTE_TO_DESTINATION = 3; // 0x3 field public static final int NO_USER_RESPONDING = 18; // 0x12 field public static final int NO_VALID_SIM = 249; // 0xf9 field public static final int NUMBER_CHANGED = 22; // 0x16 field public static final int OEM_CAUSE_1 = 61441; // 0xf001 field public static final int OEM_CAUSE_10 = 61450; // 0xf00a field public static final int OEM_CAUSE_11 = 61451; // 0xf00b field public static final int OEM_CAUSE_12 = 61452; // 0xf00c field public static final int OEM_CAUSE_13 = 61453; // 0xf00d field public static final int OEM_CAUSE_14 = 61454; // 0xf00e field public static final int OEM_CAUSE_15 = 61455; // 0xf00f field public static final int OEM_CAUSE_2 = 61442; // 0xf002 field public static final int OEM_CAUSE_3 = 61443; // 0xf003 field public static final int OEM_CAUSE_4 = 61444; // 0xf004 field public static final int OEM_CAUSE_5 = 61445; // 0xf005 field public static final int OEM_CAUSE_6 = 61446; // 0xf006 field public static final int OEM_CAUSE_7 = 61447; // 0xf007 field public static final int OEM_CAUSE_8 = 61448; // 0xf008 field public static final int OEM_CAUSE_9 = 61449; // 0xf009 field public static final int ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE = 70; // 0x46 field public static final int OPERATOR_DETERMINED_BARRING = 8; // 0x8 field public static final int OUT_OF_SRV = 248; // 0xf8 field public static final int PREEMPTION = 25; // 0x19 field public static final int PROTOCOL_ERROR_UNSPECIFIED = 111; // 0x6f field public static final int QOS_NOT_AVAIL = 49; // 0x31 field public static final int RADIO_ACCESS_FAILURE = 253; // 0xfd field public static final int RADIO_INTERNAL_ERROR = 250; // 0xfa field public static final int RADIO_LINK_FAILURE = 254; // 0xfe field public static final int RADIO_LINK_LOST = 255; // 0xff field public static final int RADIO_OFF = 247; // 0xf7 field public static final int RADIO_RELEASE_ABNORMAL = 259; // 0x103 field public static final int RADIO_RELEASE_NORMAL = 258; // 0x102 field public static final int RADIO_SETUP_FAILURE = 257; // 0x101 field public static final int RADIO_UPLINK_FAILURE = 256; // 0x100 field public static final int RECOVERY_ON_TIMER_EXPIRED = 102; // 0x66 field public static final int REQUESTED_FACILITY_NOT_IMPLEMENTED = 69; // 0x45 field public static final int REQUESTED_FACILITY_NOT_SUBSCRIBED = 50; // 0x32 field public static final int RESOURCES_UNAVAILABLE_OR_UNSPECIFIED = 47; // 0x2f field public static final int SEMANTICALLY_INCORRECT_MESSAGE = 95; // 0x5f field public static final int SERVICE_OPTION_NOT_AVAILABLE = 63; // 0x3f field public static final int SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79; // 0x4f field public static final int STATUS_ENQUIRY = 30; // 0x1e field public static final int SWITCHING_CONGESTION = 42; // 0x2a field public static final int TEMPORARY_FAILURE = 41; // 0x29 field public static final int UNOBTAINABLE_NUMBER = 1; // 0x1 field public static final int USER_NOT_MEMBER_OF_CUG = 87; // 0x57 } public class ServiceState implements android.os.Parcelable { method public android.telephony.NetworkRegistrationState getNetworkRegistrationState(int, int); method public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStates(); Loading data/etc/privapp-permissions-platform.xml +2 −0 Original line number Diff line number Diff line Loading @@ -315,6 +315,8 @@ applications that come with the platform <permission name="android.permission.PACKAGE_USAGE_STATS" /> <permission name="android.permission.READ_FRAME_BUFFER"/> <permission name="android.permission.READ_LOWPAN_CREDENTIAL"/> <!-- Needed for test only --> <permission name="android.permission.READ_PRECISE_PHONE_STATE" /> <permission name="android.permission.REAL_GET_TASKS"/> <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/> <permission name="android.permission.REGISTER_CALL_PROVIDER"/> Loading packages/Shell/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ <uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> Loading services/core/java/com/android/server/TelephonyRegistry.java +28 −12 Original line number Diff line number Diff line Loading @@ -210,6 +210,10 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { private PreciseCallState mPreciseCallState = new PreciseCallState(); private int mCallDisconnectCause = DisconnectCause.NOT_VALID; private int mCallPreciseDisconnectCause = PreciseDisconnectCause.NOT_VALID; private boolean mCarrierNetworkChangeState = false; private PhoneCapability mPhoneCapability = null; Loading Loading @@ -708,6 +712,14 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { remove(r.binder); } } if ((events & PhoneStateListener.LISTEN_CALL_DISCONNECT_CAUSES) != 0) { try { r.callback.onCallDisconnectCauseChanged(mCallDisconnectCause, mCallPreciseDisconnectCause); } catch (RemoteException ex) { remove(r.binder); } } if ((events & PhoneStateListener.LISTEN_PRECISE_DATA_CONNECTION_STATE) != 0) { try { r.callback.onPreciseDataConnectionStateChanged( Loading Loading @@ -1478,9 +1490,8 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { } handleRemoveListLocked(); } broadcastPreciseCallStateChanged(ringingCallState, foregroundCallState, backgroundCallState, DisconnectCause.NOT_VALID, PreciseDisconnectCause.NOT_VALID); broadcastPreciseCallStateChanged(ringingCallState, foregroundCallState, backgroundCallState); } public void notifyDisconnectCause(int disconnectCause, int preciseDisconnectCause) { Loading @@ -1488,12 +1499,14 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { return; } synchronized (mRecords) { mPreciseCallState = new PreciseCallState(mRingingCallState, mForegroundCallState, mBackgroundCallState, disconnectCause, preciseDisconnectCause); mCallDisconnectCause = disconnectCause; mCallPreciseDisconnectCause = preciseDisconnectCause; for (Record r : mRecords) { if (r.matchPhoneStateListenerEvent(PhoneStateListener.LISTEN_PRECISE_CALL_STATE)) { if (r.matchPhoneStateListenerEvent(PhoneStateListener .LISTEN_CALL_DISCONNECT_CAUSES)) { try { r.callback.onPreciseCallStateChanged(mPreciseCallState); r.callback.onCallDisconnectCauseChanged(mCallDisconnectCause, mCallPreciseDisconnectCause); } catch (RemoteException ex) { mRemoveList.add(r.binder); } Loading @@ -1501,8 +1514,6 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { } handleRemoveListLocked(); } broadcastPreciseCallStateChanged(mRingingCallState, mForegroundCallState, mBackgroundCallState, disconnectCause, preciseDisconnectCause); } public void notifyPreciseDataConnectionFailed(String reason, String apnType, Loading Loading @@ -1703,6 +1714,8 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { } pw.println("mPreciseDataConnectionState=" + mPreciseDataConnectionState); pw.println("mPreciseCallState=" + mPreciseCallState); pw.println("mCallDisconnectCause=" + mCallDisconnectCause); pw.println("mCallPreciseDisconnectCause=" + mCallPreciseDisconnectCause); pw.println("mCarrierNetworkChangeState=" + mCarrierNetworkChangeState); pw.println("mRingingCallState=" + mRingingCallState); pw.println("mForegroundCallState=" + mForegroundCallState); Loading Loading @@ -1877,13 +1890,11 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { } private void broadcastPreciseCallStateChanged(int ringingCallState, int foregroundCallState, int backgroundCallState, int disconnectCause, int preciseDisconnectCause) { int backgroundCallState) { Intent intent = new Intent(TelephonyManager.ACTION_PRECISE_CALL_STATE_CHANGED); intent.putExtra(TelephonyManager.EXTRA_RINGING_CALL_STATE, ringingCallState); intent.putExtra(TelephonyManager.EXTRA_FOREGROUND_CALL_STATE, foregroundCallState); intent.putExtra(TelephonyManager.EXTRA_BACKGROUND_CALL_STATE, backgroundCallState); intent.putExtra(TelephonyManager.EXTRA_DISCONNECT_CAUSE, disconnectCause); intent.putExtra(TelephonyManager.EXTRA_PRECISE_DISCONNECT_CAUSE, preciseDisconnectCause); mContext.sendBroadcastAsUser(intent, UserHandle.ALL, android.Manifest.permission.READ_PRECISE_PHONE_STATE); } Loading Loading @@ -1964,6 +1975,11 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { } if ((events & PhoneStateListener.LISTEN_CALL_DISCONNECT_CAUSES) != 0) { mContext.enforceCallingOrSelfPermission( android.Manifest.permission.READ_PRECISE_PHONE_STATE, null); } return true; } Loading telephony/java/android/telephony/DisconnectCause.java +15 −27 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
api/system-current.txt +197 −0 Original line number Diff line number Diff line Loading @@ -5044,6 +5044,83 @@ package android.telephony { field public static final java.lang.String KEY_CARRIER_SETUP_APP_STRING = "carrier_setup_app_string"; } public class DisconnectCause { field public static final int ALREADY_DIALING = 72; // 0x48 field public static final int ANSWERED_ELSEWHERE = 52; // 0x34 field public static final int BUSY = 4; // 0x4 field public static final int CALLING_DISABLED = 74; // 0x4a field public static final int CALL_BARRED = 20; // 0x14 field public static final int CALL_PULLED = 51; // 0x33 field public static final int CANT_CALL_WHILE_RINGING = 73; // 0x49 field public static final int CDMA_ACCESS_BLOCKED = 35; // 0x23 field public static final int CDMA_ACCESS_FAILURE = 32; // 0x20 field public static final int CDMA_ALREADY_ACTIVATED = 49; // 0x31 field public static final int CDMA_DROP = 27; // 0x1b field public static final int CDMA_INTERCEPT = 28; // 0x1c field public static final int CDMA_LOCKED_UNTIL_POWER_CYCLE = 26; // 0x1a field public static final int CDMA_NOT_EMERGENCY = 34; // 0x22 field public static final int CDMA_PREEMPTED = 33; // 0x21 field public static final int CDMA_REORDER = 29; // 0x1d field public static final int CDMA_RETRY_ORDER = 31; // 0x1f field public static final int CDMA_SO_REJECT = 30; // 0x1e field public static final int CONGESTION = 5; // 0x5 field public static final int CS_RESTRICTED = 22; // 0x16 field public static final int CS_RESTRICTED_EMERGENCY = 24; // 0x18 field public static final int CS_RESTRICTED_NORMAL = 23; // 0x17 field public static final int DATA_DISABLED = 54; // 0x36 field public static final int DATA_LIMIT_REACHED = 55; // 0x37 field public static final int DIALED_CALL_FORWARDING_WHILE_ROAMING = 57; // 0x39 field public static final int DIALED_MMI = 39; // 0x27 field public static final int DIAL_LOW_BATTERY = 62; // 0x3e field public static final int DIAL_MODIFIED_TO_DIAL = 48; // 0x30 field public static final int DIAL_MODIFIED_TO_DIAL_VIDEO = 66; // 0x42 field public static final int DIAL_MODIFIED_TO_SS = 47; // 0x2f field public static final int DIAL_MODIFIED_TO_USSD = 46; // 0x2e field public static final int DIAL_VIDEO_MODIFIED_TO_DIAL = 69; // 0x45 field public static final int DIAL_VIDEO_MODIFIED_TO_DIAL_VIDEO = 70; // 0x46 field public static final int DIAL_VIDEO_MODIFIED_TO_SS = 67; // 0x43 field public static final int DIAL_VIDEO_MODIFIED_TO_USSD = 68; // 0x44 field public static final int EMERGENCY_PERM_FAILURE = 64; // 0x40 field public static final int EMERGENCY_TEMP_FAILURE = 63; // 0x3f field public static final int ERROR_UNSPECIFIED = 36; // 0x24 field public static final int FDN_BLOCKED = 21; // 0x15 field public static final int ICC_ERROR = 19; // 0x13 field public static final int IMEI_NOT_ACCEPTED = 58; // 0x3a field public static final int IMS_ACCESS_BLOCKED = 60; // 0x3c field public static final int IMS_MERGED_SUCCESSFULLY = 45; // 0x2d field public static final int IMS_SIP_ALTERNATE_EMERGENCY_CALL = 71; // 0x47 field public static final int INCOMING_MISSED = 1; // 0x1 field public static final int INCOMING_REJECTED = 16; // 0x10 field public static final int INVALID_CREDENTIALS = 10; // 0xa field public static final int INVALID_NUMBER = 7; // 0x7 field public static final int LIMIT_EXCEEDED = 15; // 0xf field public static final int LOCAL = 3; // 0x3 field public static final int LOST_SIGNAL = 14; // 0xe field public static final int LOW_BATTERY = 61; // 0x3d field public static final int MAXIMUM_NUMBER_OF_CALLS_REACHED = 53; // 0x35 field public static final int MMI = 6; // 0x6 field public static final int NORMAL = 2; // 0x2 field public static final int NORMAL_UNSPECIFIED = 65; // 0x41 field public static final int NOT_DISCONNECTED = 0; // 0x0 field public static final int NOT_VALID = -1; // 0xffffffff field public static final int NO_PHONE_NUMBER_SUPPLIED = 38; // 0x26 field public static final int NUMBER_UNREACHABLE = 8; // 0x8 field public static final int OTASP_PROVISIONING_IN_PROCESS = 76; // 0x4c field public static final int OUTGOING_CANCELED = 44; // 0x2c field public static final int OUTGOING_FAILURE = 43; // 0x2b field public static final int OUT_OF_NETWORK = 11; // 0xb field public static final int OUT_OF_SERVICE = 18; // 0x12 field public static final int POWER_OFF = 17; // 0x11 field public static final int SERVER_ERROR = 12; // 0xc field public static final int SERVER_UNREACHABLE = 9; // 0x9 field public static final int TIMED_OUT = 13; // 0xd field public static final int TOO_MANY_ONGOING_CALLS = 75; // 0x4b field public static final int UNOBTAINABLE_NUMBER = 25; // 0x19 field public static final int VIDEO_CALL_NOT_ALLOWED_WHILE_TTY_ENABLED = 50; // 0x32 field public static final int VOICEMAIL_NUMBER_MISSING = 40; // 0x28 field public static final int WIFI_LOST = 59; // 0x3b } public class MbmsDownloadSession implements java.lang.AutoCloseable { field public static final java.lang.String MBMS_DOWNLOAD_SERVICE_ACTION = "android.telephony.action.EmbmsDownload"; } Loading Loading @@ -5132,14 +5209,134 @@ package android.telephony { } public class PhoneStateListener { method public void onCallDisconnectCauseChanged(int, int); method public void onPreciseCallStateChanged(android.telephony.PreciseCallState); method public void onRadioPowerStateChanged(int); method public void onSrvccStateChanged(int); method public void onVoiceActivationStateChanged(int); field public static final int LISTEN_CALL_DISCONNECT_CAUSES = 33554432; // 0x2000000 field public static final int LISTEN_PRECISE_CALL_STATE = 2048; // 0x800 field public static final int LISTEN_RADIO_POWER_STATE_CHANGED = 8388608; // 0x800000 field public static final int LISTEN_SRVCC_STATE_CHANGED = 16384; // 0x4000 field public static final int LISTEN_VOICE_ACTIVATION_STATE = 131072; // 0x20000 } public final class PreciseCallState implements android.os.Parcelable { method public int describeContents(); method public int getBackgroundCallState(); method public int getForegroundCallState(); method public int getRingingCallState(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.telephony.PreciseCallState> CREATOR; field public static final int PRECISE_CALL_STATE_ACTIVE = 1; // 0x1 field public static final int PRECISE_CALL_STATE_ALERTING = 4; // 0x4 field public static final int PRECISE_CALL_STATE_DIALING = 3; // 0x3 field public static final int PRECISE_CALL_STATE_DISCONNECTED = 7; // 0x7 field public static final int PRECISE_CALL_STATE_DISCONNECTING = 8; // 0x8 field public static final int PRECISE_CALL_STATE_HOLDING = 2; // 0x2 field public static final int PRECISE_CALL_STATE_IDLE = 0; // 0x0 field public static final int PRECISE_CALL_STATE_INCOMING = 5; // 0x5 field public static final int PRECISE_CALL_STATE_NOT_VALID = -1; // 0xffffffff field public static final int PRECISE_CALL_STATE_WAITING = 6; // 0x6 } public class PreciseDisconnectCause { field public static final int ACCESS_CLASS_BLOCKED = 260; // 0x104 field public static final int ACCESS_INFORMATION_DISCARDED = 43; // 0x2b field public static final int ACM_LIMIT_EXCEEDED = 68; // 0x44 field public static final int BEARER_CAPABILITY_NOT_AUTHORIZED = 57; // 0x39 field public static final int BEARER_NOT_AVAIL = 58; // 0x3a field public static final int BEARER_SERVICE_NOT_IMPLEMENTED = 65; // 0x41 field public static final int BUSY = 17; // 0x11 field public static final int CALL_BARRED = 240; // 0xf0 field public static final int CALL_REJECTED = 21; // 0x15 field public static final int CDMA_ACCESS_BLOCKED = 1009; // 0x3f1 field public static final int CDMA_ACCESS_FAILURE = 1006; // 0x3ee field public static final int CDMA_DROP = 1001; // 0x3e9 field public static final int CDMA_INTERCEPT = 1002; // 0x3ea field public static final int CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000; // 0x3e8 field public static final int CDMA_NOT_EMERGENCY = 1008; // 0x3f0 field public static final int CDMA_PREEMPTED = 1007; // 0x3ef field public static final int CDMA_REORDER = 1003; // 0x3eb field public static final int CDMA_RETRY_ORDER = 1005; // 0x3ed field public static final int CDMA_SO_REJECT = 1004; // 0x3ec field public static final int CHANNEL_NOT_AVAIL = 44; // 0x2c field public static final int CHANNEL_UNACCEPTABLE = 6; // 0x6 field public static final int CONDITIONAL_IE_ERROR = 100; // 0x64 field public static final int DESTINATION_OUT_OF_ORDER = 27; // 0x1b field public static final int ERROR_UNSPECIFIED = 65535; // 0xffff field public static final int FACILITY_REJECTED = 29; // 0x1d field public static final int FDN_BLOCKED = 241; // 0xf1 field public static final int IMEI_NOT_ACCEPTED = 243; // 0xf3 field public static final int IMSI_UNKNOWN_IN_VLR = 242; // 0xf2 field public static final int INCOMING_CALLS_BARRED_WITHIN_CUG = 55; // 0x37 field public static final int INCOMPATIBLE_DESTINATION = 88; // 0x58 field public static final int INFORMATION_ELEMENT_NON_EXISTENT = 99; // 0x63 field public static final int INTERWORKING_UNSPECIFIED = 127; // 0x7f field public static final int INVALID_MANDATORY_INFORMATION = 96; // 0x60 field public static final int INVALID_NUMBER_FORMAT = 28; // 0x1c field public static final int INVALID_TRANSACTION_IDENTIFIER = 81; // 0x51 field public static final int MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101; // 0x65 field public static final int MESSAGE_TYPE_NON_IMPLEMENTED = 97; // 0x61 field public static final int MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98; // 0x62 field public static final int NETWORK_DETACH = 261; // 0x105 field public static final int NETWORK_OUT_OF_ORDER = 38; // 0x26 field public static final int NETWORK_REJECT = 252; // 0xfc field public static final int NETWORK_RESP_TIMEOUT = 251; // 0xfb field public static final int NORMAL = 16; // 0x10 field public static final int NORMAL_UNSPECIFIED = 31; // 0x1f field public static final int NOT_VALID = -1; // 0xffffffff field public static final int NO_ANSWER_FROM_USER = 19; // 0x13 field public static final int NO_CIRCUIT_AVAIL = 34; // 0x22 field public static final int NO_DISCONNECT_CAUSE_AVAILABLE = 0; // 0x0 field public static final int NO_ROUTE_TO_DESTINATION = 3; // 0x3 field public static final int NO_USER_RESPONDING = 18; // 0x12 field public static final int NO_VALID_SIM = 249; // 0xf9 field public static final int NUMBER_CHANGED = 22; // 0x16 field public static final int OEM_CAUSE_1 = 61441; // 0xf001 field public static final int OEM_CAUSE_10 = 61450; // 0xf00a field public static final int OEM_CAUSE_11 = 61451; // 0xf00b field public static final int OEM_CAUSE_12 = 61452; // 0xf00c field public static final int OEM_CAUSE_13 = 61453; // 0xf00d field public static final int OEM_CAUSE_14 = 61454; // 0xf00e field public static final int OEM_CAUSE_15 = 61455; // 0xf00f field public static final int OEM_CAUSE_2 = 61442; // 0xf002 field public static final int OEM_CAUSE_3 = 61443; // 0xf003 field public static final int OEM_CAUSE_4 = 61444; // 0xf004 field public static final int OEM_CAUSE_5 = 61445; // 0xf005 field public static final int OEM_CAUSE_6 = 61446; // 0xf006 field public static final int OEM_CAUSE_7 = 61447; // 0xf007 field public static final int OEM_CAUSE_8 = 61448; // 0xf008 field public static final int OEM_CAUSE_9 = 61449; // 0xf009 field public static final int ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE = 70; // 0x46 field public static final int OPERATOR_DETERMINED_BARRING = 8; // 0x8 field public static final int OUT_OF_SRV = 248; // 0xf8 field public static final int PREEMPTION = 25; // 0x19 field public static final int PROTOCOL_ERROR_UNSPECIFIED = 111; // 0x6f field public static final int QOS_NOT_AVAIL = 49; // 0x31 field public static final int RADIO_ACCESS_FAILURE = 253; // 0xfd field public static final int RADIO_INTERNAL_ERROR = 250; // 0xfa field public static final int RADIO_LINK_FAILURE = 254; // 0xfe field public static final int RADIO_LINK_LOST = 255; // 0xff field public static final int RADIO_OFF = 247; // 0xf7 field public static final int RADIO_RELEASE_ABNORMAL = 259; // 0x103 field public static final int RADIO_RELEASE_NORMAL = 258; // 0x102 field public static final int RADIO_SETUP_FAILURE = 257; // 0x101 field public static final int RADIO_UPLINK_FAILURE = 256; // 0x100 field public static final int RECOVERY_ON_TIMER_EXPIRED = 102; // 0x66 field public static final int REQUESTED_FACILITY_NOT_IMPLEMENTED = 69; // 0x45 field public static final int REQUESTED_FACILITY_NOT_SUBSCRIBED = 50; // 0x32 field public static final int RESOURCES_UNAVAILABLE_OR_UNSPECIFIED = 47; // 0x2f field public static final int SEMANTICALLY_INCORRECT_MESSAGE = 95; // 0x5f field public static final int SERVICE_OPTION_NOT_AVAILABLE = 63; // 0x3f field public static final int SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79; // 0x4f field public static final int STATUS_ENQUIRY = 30; // 0x1e field public static final int SWITCHING_CONGESTION = 42; // 0x2a field public static final int TEMPORARY_FAILURE = 41; // 0x29 field public static final int UNOBTAINABLE_NUMBER = 1; // 0x1 field public static final int USER_NOT_MEMBER_OF_CUG = 87; // 0x57 } public class ServiceState implements android.os.Parcelable { method public android.telephony.NetworkRegistrationState getNetworkRegistrationState(int, int); method public java.util.List<android.telephony.NetworkRegistrationState> getNetworkRegistrationStates(); Loading
data/etc/privapp-permissions-platform.xml +2 −0 Original line number Diff line number Diff line Loading @@ -315,6 +315,8 @@ applications that come with the platform <permission name="android.permission.PACKAGE_USAGE_STATS" /> <permission name="android.permission.READ_FRAME_BUFFER"/> <permission name="android.permission.READ_LOWPAN_CREDENTIAL"/> <!-- Needed for test only --> <permission name="android.permission.READ_PRECISE_PHONE_STATE" /> <permission name="android.permission.REAL_GET_TASKS"/> <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/> <permission name="android.permission.REGISTER_CALL_PROVIDER"/> Loading
packages/Shell/AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ <uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> Loading
services/core/java/com/android/server/TelephonyRegistry.java +28 −12 Original line number Diff line number Diff line Loading @@ -210,6 +210,10 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { private PreciseCallState mPreciseCallState = new PreciseCallState(); private int mCallDisconnectCause = DisconnectCause.NOT_VALID; private int mCallPreciseDisconnectCause = PreciseDisconnectCause.NOT_VALID; private boolean mCarrierNetworkChangeState = false; private PhoneCapability mPhoneCapability = null; Loading Loading @@ -708,6 +712,14 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { remove(r.binder); } } if ((events & PhoneStateListener.LISTEN_CALL_DISCONNECT_CAUSES) != 0) { try { r.callback.onCallDisconnectCauseChanged(mCallDisconnectCause, mCallPreciseDisconnectCause); } catch (RemoteException ex) { remove(r.binder); } } if ((events & PhoneStateListener.LISTEN_PRECISE_DATA_CONNECTION_STATE) != 0) { try { r.callback.onPreciseDataConnectionStateChanged( Loading Loading @@ -1478,9 +1490,8 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { } handleRemoveListLocked(); } broadcastPreciseCallStateChanged(ringingCallState, foregroundCallState, backgroundCallState, DisconnectCause.NOT_VALID, PreciseDisconnectCause.NOT_VALID); broadcastPreciseCallStateChanged(ringingCallState, foregroundCallState, backgroundCallState); } public void notifyDisconnectCause(int disconnectCause, int preciseDisconnectCause) { Loading @@ -1488,12 +1499,14 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { return; } synchronized (mRecords) { mPreciseCallState = new PreciseCallState(mRingingCallState, mForegroundCallState, mBackgroundCallState, disconnectCause, preciseDisconnectCause); mCallDisconnectCause = disconnectCause; mCallPreciseDisconnectCause = preciseDisconnectCause; for (Record r : mRecords) { if (r.matchPhoneStateListenerEvent(PhoneStateListener.LISTEN_PRECISE_CALL_STATE)) { if (r.matchPhoneStateListenerEvent(PhoneStateListener .LISTEN_CALL_DISCONNECT_CAUSES)) { try { r.callback.onPreciseCallStateChanged(mPreciseCallState); r.callback.onCallDisconnectCauseChanged(mCallDisconnectCause, mCallPreciseDisconnectCause); } catch (RemoteException ex) { mRemoveList.add(r.binder); } Loading @@ -1501,8 +1514,6 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { } handleRemoveListLocked(); } broadcastPreciseCallStateChanged(mRingingCallState, mForegroundCallState, mBackgroundCallState, disconnectCause, preciseDisconnectCause); } public void notifyPreciseDataConnectionFailed(String reason, String apnType, Loading Loading @@ -1703,6 +1714,8 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { } pw.println("mPreciseDataConnectionState=" + mPreciseDataConnectionState); pw.println("mPreciseCallState=" + mPreciseCallState); pw.println("mCallDisconnectCause=" + mCallDisconnectCause); pw.println("mCallPreciseDisconnectCause=" + mCallPreciseDisconnectCause); pw.println("mCarrierNetworkChangeState=" + mCarrierNetworkChangeState); pw.println("mRingingCallState=" + mRingingCallState); pw.println("mForegroundCallState=" + mForegroundCallState); Loading Loading @@ -1877,13 +1890,11 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { } private void broadcastPreciseCallStateChanged(int ringingCallState, int foregroundCallState, int backgroundCallState, int disconnectCause, int preciseDisconnectCause) { int backgroundCallState) { Intent intent = new Intent(TelephonyManager.ACTION_PRECISE_CALL_STATE_CHANGED); intent.putExtra(TelephonyManager.EXTRA_RINGING_CALL_STATE, ringingCallState); intent.putExtra(TelephonyManager.EXTRA_FOREGROUND_CALL_STATE, foregroundCallState); intent.putExtra(TelephonyManager.EXTRA_BACKGROUND_CALL_STATE, backgroundCallState); intent.putExtra(TelephonyManager.EXTRA_DISCONNECT_CAUSE, disconnectCause); intent.putExtra(TelephonyManager.EXTRA_PRECISE_DISCONNECT_CAUSE, preciseDisconnectCause); mContext.sendBroadcastAsUser(intent, UserHandle.ALL, android.Manifest.permission.READ_PRECISE_PHONE_STATE); } Loading Loading @@ -1964,6 +1975,11 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { } if ((events & PhoneStateListener.LISTEN_CALL_DISCONNECT_CAUSES) != 0) { mContext.enforceCallingOrSelfPermission( android.Manifest.permission.READ_PRECISE_PHONE_STATE, null); } return true; } Loading
telephony/java/android/telephony/DisconnectCause.java +15 −27 File changed.Preview size limit exceeded, changes collapsed. Show changes