# TelephonyCallback.RegistrationFailedListener

Added in[API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

# TelephonyCallback.RegistrationFailedListener

*** ** * ** ***

[Kotlin](https://developer.android.com/reference/kotlin/android/telephony/TelephonyCallback.RegistrationFailedListener "View this page in Kotlin")\|Java

`
public
static


interface
TelephonyCallback.RegistrationFailedListener
`  
`


`

|----------------------------------------------------------------|
| android.telephony.TelephonyCallback.RegistrationFailedListener |

<br />

*** ** * ** ***

Interface for registration failures listener.

## Summary

|                                                                                                                                                                                                                                                                                ### Public methods                                                                                                                                                                                                                                                                                ||
|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract void` | ` `[onRegistrationFailed](https://developer.android.com/reference/android/telephony/TelephonyCallback.RegistrationFailedListener#onRegistrationFailed(android.telephony.CellIdentity,%20java.lang.String,%20int,%20int,%20int))`(`[CellIdentity](https://developer.android.com/reference/android/telephony/CellIdentity)` cellIdentity, `[String](https://developer.android.com/reference/java/lang/String)` chosenPlmn, int domain, int causeCode, int additionalCauseCode) ` Report that Registration or a Location/Routing/Tracking Area update has failed. |

## Public methods

### onRegistrationFailed

Added in[API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract void onRegistrationFailed (CellIdentity cellIdentity, 
                String chosenPlmn, 
                int domain, 
                int causeCode, 
                int additionalCauseCode)
```

Report that Registration or a Location/Routing/Tracking Area update has failed.

Indicate whenever a registration procedure, including a location, routing, or tracking area update fails. This includes procedures that do not necessarily result in a change of the modem's registration status. If the modem's registration status changes, that is reflected in the onNetworkStateChanged() and subsequent get{Voice/Data}RegistrationState().

Because registration failures are ephemeral, this callback is not sticky. Registrants will not receive the most recent past value when registering. The calling app should have carrier privileges (see[TelephonyManager.hasCarrierPrivileges](https://developer.android.com/reference/android/telephony/TelephonyManager#hasCarrierPrivileges())) if it does not have the[Manifest.permission.READ_PRECISE_PHONE_STATE](https://developer.android.com/reference/android/Manifest.permission#READ_PRECISE_PHONE_STATE)and[Manifest.permission.ACCESS_FINE_LOCATION](https://developer.android.com/reference/android/Manifest.permission#ACCESS_FINE_LOCATION). If the calling app doesn't have[Manifest.permission.ACCESS_FINE_LOCATION](https://developer.android.com/reference/android/Manifest.permission#ACCESS_FINE_LOCATION), it will receive[CellIdentity](https://developer.android.com/reference/android/telephony/CellIdentity)without location-sensitive information included.  
Requires[Manifest.permission.READ_PRECISE_PHONE_STATE](https://developer.android.com/reference/android/Manifest.permission#READ_PRECISE_PHONE_STATE)and[Manifest.permission.ACCESS_FINE_LOCATION](https://developer.android.com/reference/android/Manifest.permission#ACCESS_FINE_LOCATION)

<br />

|                                                                                                                                                                                                                                                                                                                            Parameters                                                                                                                                                                                                                                                                                                                             ||
|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `cellIdentity`        | `CellIdentity`: the CellIdentity, which must include the globally unique identifier for the cell (for example, all components of the CGI or ECGI). This value cannot be`null`. <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `chosenPlmn`          | `String`: a 5 or 6 digit alphanumeric PLMN (MCC\|MNC) among those broadcast by the cell that was chosen for the failed registration attempt. This value cannot be`null`. <br />                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `domain`              | `int`: DOMAIN_CS, DOMAIN_PS or both in case of a combined procedure. Value is[NetworkRegistrationInfo.DOMAIN_UNKNOWN](https://developer.android.com/reference/android/telephony/NetworkRegistrationInfo#DOMAIN_UNKNOWN),[NetworkRegistrationInfo.DOMAIN_CS](https://developer.android.com/reference/android/telephony/NetworkRegistrationInfo#DOMAIN_CS),[NetworkRegistrationInfo.DOMAIN_PS](https://developer.android.com/reference/android/telephony/NetworkRegistrationInfo#DOMAIN_PS), or[NetworkRegistrationInfo.DOMAIN_CS_PS](https://developer.android.com/reference/android/telephony/NetworkRegistrationInfo#DOMAIN_CS_PS) <br /> |
| `causeCode`           | `int`: the primary failure cause code of the procedure. For GSM/UMTS (MM), values are in TS 24.008 Sec 10.5.95 For GSM/UMTS (GMM), values are in TS 24.008 Sec 10.5.147 For LTE (EMM), cause codes are TS 24.301 Sec 9.9.3.9 For NR (5GMM), cause codes are TS 24.501 Sec 9.11.3.2 Integer.MAX_VALUE if this value is unused. <br />                                                                                                                                                                                                                                                                                                       |
| `additionalCauseCode` | `int`: the cause code of any secondary/combined procedure if appropriate. For UMTS, if a combined attach succeeds for PS only, then the GMM cause code shall be included as an additionalCauseCode. For LTE (ESM), cause codes are in TS 24.301 9.9.4.4. Integer.MAX_VALUE if this value is unused. <br />                                                                                                                                                                                                                                                                                                                                 |