Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/android/telephony/mbms/MbmsDownloadSessionCallback#pubctors) \| [Methods](https://developer.android.com/reference/android/telephony/mbms/MbmsDownloadSessionCallback#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/telephony/mbms/MbmsDownloadSessionCallback#inhmethods)

# MbmsDownloadSessionCallback

*** ** * ** ***

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


`
public


class
MbmsDownloadSessionCallback
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.telephony.mbms.MbmsDownloadSessionCallback |

<br />

*** ** * ** ***

A callback class that apps should use to receive information on file downloads over
cell-broadcast.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/telephony/mbms/MbmsDownloadSessionCallback#MbmsDownloadSessionCallback()() ` |

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/android/telephony/mbms/MbmsDownloadSessionCallback#onError(int,%20java.lang.String)(int errorCode, https://developer.android.com/reference/java/lang/String message) ` Indicates that the middleware has encountered an asynchronous error. |
| ` void` | ` https://developer.android.com/reference/android/telephony/mbms/MbmsDownloadSessionCallback#onFileServicesUpdated(java.util.List<android.telephony.mbms.FileServiceInfo>)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/telephony/mbms/FileServiceInfo> services) ` Called to indicate published File Services have changed. |
| ` void` | ` https://developer.android.com/reference/android/telephony/mbms/MbmsDownloadSessionCallback#onMiddlewareReady()() ` Called to indicate that the middleware has been initialized and is ready. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||

## Public constructors

### MbmsDownloadSessionCallback

```
public MbmsDownloadSessionCallback ()
```

<br />

<br />

## Public methods

### onError

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

```
public void onError (int errorCode, 
                String message)
```

Indicates that the middleware has encountered an asynchronous error.

<br />

| Parameters ||
|---|---|
| `errorCode` | `int`: Any error code listed in `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors` Value is one of the following: - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors#ERROR_NO_UNIQUE_MIDDLEWARE` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors#ERROR_MIDDLEWARE_LOST` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors#ERROR_MIDDLEWARE_NOT_BOUND` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors.InitializationErrors#ERROR_APP_PERMISSIONS_NOT_GRANTED` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors.InitializationErrors#ERROR_DUPLICATE_INITIALIZE` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors.InitializationErrors#ERROR_UNABLE_TO_INITIALIZE` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors.GeneralErrors#ERROR_MIDDLEWARE_NOT_YET_READY` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors.GeneralErrors#ERROR_OUT_OF_MEMORY` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors.GeneralErrors#ERROR_MIDDLEWARE_TEMPORARILY_UNAVAILABLE` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors.GeneralErrors#ERROR_IN_E911` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors.GeneralErrors#ERROR_NOT_CONNECTED_TO_HOME_CARRIER_LTE` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors.GeneralErrors#ERROR_UNABLE_TO_READ_SIM` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors.GeneralErrors#ERROR_CARRIER_CHANGE_NOT_ALLOWED` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors.DownloadErrors#ERROR_CANNOT_CHANGE_TEMP_FILE_ROOT` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors.DownloadErrors#ERROR_UNKNOWN_DOWNLOAD_REQUEST` - `https://developer.android.com/reference/android/telephony/mbms/MbmsErrors.DownloadErrors#ERROR_UNKNOWN_FILE_INFO` |
| `message` | `String`: A message, intended for debugging purposes, describing the error in further detail. <br /> |

### onFileServicesUpdated

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

```
public void onFileServicesUpdated (List<FileServiceInfo> services)
```

Called to indicate published File Services have changed.

This will only be called after the application has requested a list of file services and
specified a service class list of interest via
`https://developer.android.com/reference/android/telephony/MbmsDownloadSession#requestUpdateFileServices(java.util.List<java.lang.String>)`. If there are subsequent calls to
`https://developer.android.com/reference/android/telephony/MbmsDownloadSession#requestUpdateFileServices(java.util.List<java.lang.String>)`,
this method may not be called again if
the list of service classes would remain the same.

<br />

| Parameters ||
|---|---|
| `services` | `List`: The most recently updated list of available file services. <br /> |

### onMiddlewareReady

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

```
public void onMiddlewareReady ()
```

Called to indicate that the middleware has been initialized and is ready.

Before this method is called, calling any method on an instance of
`https://developer.android.com/reference/android/telephony/MbmsDownloadSession` will result in an `https://developer.android.com/reference/java/lang/IllegalStateException`
being thrown or `https://developer.android.com/reference/android/telephony/mbms/MbmsDownloadSessionCallback#onError(int,%20java.lang.String)` being called with error code
`https://developer.android.com/reference/android/telephony/mbms/MbmsErrors.GeneralErrors#ERROR_MIDDLEWARE_NOT_YET_READY`

<br />