# com.google.android.play.core.ktx

# com.google.android.play.core.ktx

## Classes

|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [AppUpdateResult](https://developer.android.com/reference/com/google/android/play/core/ktx/AppUpdateResult) | Result type that will be emitted from[requestUpdateFlow](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.appupdate.AppUpdateManager).requestUpdateFlow())for various stages of the update. |

## Top-level functions summary

|-------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [SplitInstallStateUpdatedListener](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallStateUpdatedListener.html) | [SplitInstallStateUpdatedListener](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#SplitInstallStateUpdatedListener(kotlin.Function1,%20kotlin.Function1,%20kotlin.Function1,%20kotlin.Function1,%20kotlin.Function1,%20kotlin.Function1,%20kotlin.Function1,%20kotlin.Function1,%20kotlin.Function1,%20kotlin.Function1,%20kotlin.Function1))`(`onRequiresConfirmation:` `([SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`, `onInstalled:` `([SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`, `onFailed:` `([SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` `=` {}, `onPending:` `([SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` `=` {}, `onDownloaded:` `([SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` `=` {}, `onDownloading:` `([SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` `=` {}, `onInstalling:` `([SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` `=` {}, `onCanceling:` `([SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` `=` {}, `onCanceled:` `([SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` `=` {}, `onNonTerminalStatus:` `([SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` `=` {}, `onTerminalStatus:` `([SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html))` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` `=` {})` A convenience function for creating a[SplitInstallStateUpdatedListener](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallStateUpdatedListener.html). |

## Extension functions summary

|---------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| For[com.google.android.play.core.appupdate.AppUpdateManager](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateManager.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ||
| suspend[AppUpdateInfo](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html) | [AppUpdateManager](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateManager.html)`.`[requestAppUpdateInfo](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.appupdate.AppUpdateManager).requestAppUpdateInfo())`()` Requests the update availability for the current app                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| suspend[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                       | [AppUpdateManager](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateManager.html)`.`[requestCompleteUpdate](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.appupdate.AppUpdateManager).requestCompleteUpdate())`()` For a flexible update flow, triggers the completion of the update.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Flow\<[AppUpdateResult](https://developer.android.com/reference/com/google/android/play/core/ktx/AppUpdateResult)\>       | [AppUpdateManager](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateManager.html)`.`[requestUpdateFlow](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.appupdate.AppUpdateManager).requestUpdateFlow())`()` Entry point for monitoring the availability and progress of updates.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)                                        | [AppUpdateManager](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateManager.html)`.`[startUpdateFlowForResult](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.appupdate.AppUpdateManager).startUpdateFlowForResult(com.google.android.play.core.appupdate.AppUpdateInfo,%20kotlin.Int,%20androidx.fragment.app.Fragment,%20kotlin.Int))`(`appUpdateInfo:` `[AppUpdateInfo](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html)`, `appUpdateType:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, `fragment:` `Fragment`, `requestCode:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` A version of[AppUpdateManager.startUpdateFlowForResult](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateManager.html#startUpdateFlowForResult(com.google.android.play.core.appupdate.AppUpdateInfo, int, android.app.Activity, int))that accepts an AndroidX Fragment for returning the result. |

|--------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| For[com.google.android.play.core.assetpacks.AssetPackManager](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ||
| suspend[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)                                              | [AssetPackManager](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html)`.`[requestCellularDataConfirmation](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackManager).requestCellularDataConfirmation(android.app.Activity))`(`activity:` `[Activity](https://developer.android.com/reference/android/app/Activity.html)`)` Suspend version of[AssetPackManager.showCellularDataConfirmation](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html#showCellularDataConfirmation(android.app.Activity))                                                                                                                                                                              |
| suspend[AssetPackStates](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackStates.html) | [AssetPackManager](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html)`.`[requestFetch](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackManager).requestFetch(kotlin.collections.List))`(`packs:` `[List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)>`)` Requests to download the specified asset packs.                                                                                                                                                                                                                                                                                                   |
| suspend[AssetPackStates](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackStates.html) | [AssetPackManager](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html)`.`[requestPackStates](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackManager).requestPackStates(kotlin.collections.List))`(`packs:` `[List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)>`)` Suspend version of[AssetPackManager.getPackStates](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html#getPackStates(java.util.List<java.lang.String>))                                                                                                                               |
| Flow\<[AssetPackState](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html)\>  | [AssetPackManager](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html)`.`[requestProgressFlow](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackManager).requestProgressFlow(kotlin.collections.List))`(`packs:` `[List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)>`)` Creates and returns a[Flow](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#)with a[Channel.UNLIMITED](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#)buffer that will deliver all progress events for the specified asset packs installations. |
| suspend[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                            | [AssetPackManager](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html)`.`[requestRemovePack](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackManager).requestRemovePack(kotlin.String))`(`packName:` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`)` Suspend version of[AssetPackManager.removePack](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html#removePack(java.lang.String))                                                                                                                                                                                                                                                      |

|------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| For[com.google.android.play.core.review.ReviewManager](https://developer.android.com/reference/com/google/android/play/core/review/ReviewManager.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ||
| suspend[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                              | [ReviewManager](https://developer.android.com/reference/com/google/android/play/core/review/ReviewManager.html)`.`[launchReview](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.review.ReviewManager).launchReview(android.app.Activity,%20com.google.android.play.core.review.ReviewInfo))`(`activity:` `[Activity](https://developer.android.com/reference/android/app/Activity.html)`, `reviewInfo:` `[ReviewInfo](https://developer.android.com/reference/com/google/android/play/core/review/ReviewInfo.html)`)` Suspending version of[ReviewManager.launchReviewFlow](https://developer.android.com/reference/com/google/android/play/core/review/ReviewManager.html#launchReviewFlow(android.app.Activity, com.google.android.play.core.review.ReviewInfo)). |
| suspend[ReviewInfo](https://developer.android.com/reference/com/google/android/play/core/review/ReviewInfo.html) | [ReviewManager](https://developer.android.com/reference/com/google/android/play/core/review/ReviewManager.html)`.`[requestReview](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.review.ReviewManager).requestReview())`()` Suspending version of[ReviewManager.requestReviewFlow](https://developer.android.com/reference/com/google/android/play/core/review/ReviewManager.html#requestReviewFlow()).                                                                                                                                                                                                                                                                                                                                                             |

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| For[com.google.android.play.core.splitinstall.SplitInstallManager](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ||
| suspend[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                                                                                                                            | [SplitInstallManager](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html)`.`[requestCancelInstall](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallManager).requestCancelInstall(kotlin.Int))`(`sessionId:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Suspend version of[SplitInstallManager.cancelInstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#cancelInstall(int))                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| suspend[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                                                                                                                            | [SplitInstallManager](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html)`.`[requestDeferredInstall](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallManager).requestDeferredInstall(kotlin.collections.List))`(`moduleNames:` `[List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)>`)` Suspend version of[SplitInstallManager.deferredInstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#deferredInstall(java.util.List<java.lang.String>))                                                                                                                                                                                                                                                                                                                                                           |
| suspend[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                                                                                                                            | [SplitInstallManager](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html)`.`[requestDeferredLanguageInstall](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallManager).requestDeferredLanguageInstall(kotlin.collections.List))`(`languages:` `[List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[Locale](https://developer.android.com/reference/java/util/Locale.html)>`)` Suspend version of[SplitInstallManager.deferredLanguageInstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#deferredLanguageInstall(java.util.List<java.util.Locale>))                                                                                                                                                                                                                                                                                                                                      |
| suspend[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                                                                                                                            | [SplitInstallManager](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html)`.`[requestDeferredLanguageUninstall](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallManager).requestDeferredLanguageUninstall(kotlin.collections.List))`(`languages:` `[List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[Locale](https://developer.android.com/reference/java/util/Locale.html)>`)` Suspend version of[SplitInstallManager.deferredLanguageUninstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#deferredLanguageUninstall(java.util.List<java.util.Locale>))                                                                                                                                                                                                                                                                                                                              |
| suspend[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                                                                                                                                                            | [SplitInstallManager](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html)`.`[requestDeferredUninstall](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallManager).requestDeferredUninstall(kotlin.collections.List))`(`moduleNames:` `[List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)>`)` Suspend version of[SplitInstallManager.deferredUninstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#deferredUninstall(java.util.List<java.lang.String>))                                                                                                                                                                                                                                                                                                                                                   |
| suspend[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)                                                                                                                                                              | [SplitInstallManager](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html)`.`[requestInstall](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallManager).requestInstall(kotlin.collections.List,%20kotlin.collections.List))`(`modules:` `[List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)>` `=` listOf(), `languages:` `[List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)>` `=` listOf())` Initiates installation of the requested modules/languages.                                                                                                                                                                                                                                                                                          |
| Flow\<[SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html)\>                                                                                            | [SplitInstallManager](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html)`.`[requestProgressFlow](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallManager).requestProgressFlow())`()` Creates and returns a[Flow](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#)with a[Channel.UNLIMITED](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#)buffer that will deliver all progress events for ongoing split installations.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| suspend[SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html)                                                                                             | [SplitInstallManager](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html)`.`[requestSessionState](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallManager).requestSessionState(kotlin.Int))`(`sessionId:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Suspend version of[SplitInstallManager.getSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#getSessionState(int))                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| suspend[List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)\<[SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html)\> | [SplitInstallManager](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html)`.`[requestSessionStates](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallManager).requestSessionStates())`()` Suspend version of[SplitInstallManager.getSessionStates](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#getSessionStates())                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)                                                                                                                                                             | [SplitInstallManager](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html)`.`[startConfirmationDialogForResult](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallManager).startConfirmationDialogForResult(com.google.android.play.core.splitinstall.SplitInstallSessionState,%20androidx.fragment.app.Fragment,%20kotlin.Int))`(`sessionState:` `[SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html)`, `fragment:` `Fragment`, `requestCode:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` A version of[SplitInstallManager.startConfirmationDialogForResult](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#startConfirmationDialogForResult(com.google.android.play.core.splitinstall.SplitInstallSessionState, android.app.Activity, int))that accepts an AndroidX Fragment for returning the result. |

## Extension properties summary

|------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| For[com.google.android.play.core.appupdate.AppUpdateInfo](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                 ||
| [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)       | [AppUpdateInfo](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html)`.`[bytesDownloaded](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.appupdate.AppUpdateInfo).bytesDownloaded:kotlin.Long)`()` The number of bytes downloaded so far.                                                                                                                                                           |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)?        | [AppUpdateInfo](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html)`.`[clientVersionStalenessDays](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.appupdate.AppUpdateInfo).clientVersionStalenessDays:kotlin.Int)`()` If an update is available or in progress, this method returns the number of days since the Google Play Store app on the user's device has learnt about an available update. |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)         | [AppUpdateInfo](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html)`.`[installStatus](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.appupdate.AppUpdateInfo).installStatus:kotlin.Int)`()` Returns the progress status of the update.                                                                                                                                                            |
| [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) | [AppUpdateInfo](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html)`.`[isFlexibleUpdateAllowed](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.appupdate.AppUpdateInfo).isFlexibleUpdateAllowed:kotlin.Boolean)`()` Returns`true`if flexible update is allowed.                                                                                                                                   |
| [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) | [AppUpdateInfo](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html)`.`[isImmediateUpdateAllowed](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.appupdate.AppUpdateInfo).isImmediateUpdateAllowed:kotlin.Boolean)`()` Returns`true`if immediate update is allowed.                                                                                                                                |
| [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)       | [AppUpdateInfo](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html)`.`[totalBytesToDownload](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.appupdate.AppUpdateInfo).totalBytesToDownload:kotlin.Long)`()` The total number of bytes to be downloaded for this update.                                                                                                                            |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)         | [AppUpdateInfo](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html)`.`[updatePriority](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.appupdate.AppUpdateInfo).updatePriority:kotlin.Int)`()` Returns the in-app update priority for this update, as defined by the developer in the Google Play Developer API.                                                                                   |

|----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| For[com.google.android.play.core.assetpacks.AssetLocation](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetLocation.html)                                                                                                                                                                                                                                                                              ||
| [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)     | [AssetLocation](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetLocation.html)`.`[offset](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetLocation).offset:kotlin.Long)`()` The file offset where the asset starts, in bytes. |
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | [AssetLocation](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetLocation.html)`.`[path](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetLocation).path:kotlin.String)`()` The path to the file containing the asset.          |
| [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)     | [AssetLocation](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetLocation.html)`.`[size](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetLocation).size:kotlin.Long)`()` The size of the asset, in bytes.                      |

|-----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| For[com.google.android.play.core.assetpacks.AssetPackLocation](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackLocation.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ||
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)? | [AssetPackLocation](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackLocation.html)`.`[assetsPath](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackLocation).assetsPath:kotlin.String)`()` The file path to the folder containing the asset pack's unpackaged assets, if the storage method is[AssetPackStorageMethod.STORAGE_FILES](https://developer.android.com/reference/com/google/android/play/core/assetpacks/model/AssetPackStorageMethod.html#STORAGE_FILES). |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)        | [AssetPackLocation](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackLocation.html)`.`[packStorageMethod](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackLocation).packStorageMethod:kotlin.Int)`()` Whether the pack is installed as an APK or unpackaged into a folder on the filesystem.                                                                                                                                                                           |
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)? | [AssetPackLocation](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackLocation.html)`.`[path](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackLocation).path:kotlin.String)`()` Returns the file path to the folder containing the unpackaged asset pack, if the storage method is[AssetPackStorageMethod.STORAGE_FILES](https://developer.android.com/reference/com/google/android/play/core/assetpacks/model/AssetPackStorageMethod.html#STORAGE_FILES).              |

|----------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| For[com.google.android.play.core.assetpacks.AssetPackState](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html)                                                                                                                                                                                                                                                                                                                                             ||
| [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)     | [AssetPackState](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html)`.`[bytesDownloaded](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackState).bytesDownloaded:kotlin.Long)`()` The total number of bytes already downloaded for the pack.                                    |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)       | [AssetPackState](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html)`.`[errorCode](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackState).errorCode:kotlin.Int)`()` The error code for the pack, if Play has failed to download the pack.                                      |
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | [AssetPackState](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html)`.`[name](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackState).name:kotlin.String)`()` The name of the pack.                                                                                             |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)       | [AssetPackState](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html)`.`[status](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackState).status:kotlin.Int)`()` The download status of the pack.                                                                                 |
| [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)     | [AssetPackState](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html)`.`[totalBytesToDownload](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackState).totalBytesToDownload:kotlin.Long)`()` The total size of the pack in bytes.                                                |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)       | [AssetPackState](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html)`.`[transferProgressPercentage](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackState).transferProgressPercentage:kotlin.Int)`()` Returns the percentage of the asset pack already transferred to the app. |

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| For[com.google.android.play.core.assetpacks.AssetPackStates](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackStates.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ||
| [Map](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html)\<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html),[AssetPackState](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html)\> | [AssetPackStates](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackStates.html)`.`[packStates](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackStates).packStates:kotlin.collections.Map)`()` Map from pack name to[AssetPackState](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html). |
| [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)                                                                                                                                                                                                                     | [AssetPackStates](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackStates.html)`.`[totalBytes](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.assetpacks.AssetPackStates).totalBytes:kotlin.Long)`()` Total size of all requested packs in bytes.                                                                                                            |

|------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| For[com.google.android.play.core.install.InstallState](https://developer.android.com/reference/com/google/android/play/core/install/InstallState.html)                                                                                                                                                                                                                                                                                                                                                                                                          ||
| [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)       | [InstallState](https://developer.android.com/reference/com/google/android/play/core/install/InstallState.html)`.`[bytesDownloaded](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.install.InstallState).bytesDownloaded:kotlin.Long)`()` The number of bytes downloaded so far.                                                                                                                     |
| [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) | [InstallState](https://developer.android.com/reference/com/google/android/play/core/install/InstallState.html)`.`[hasTerminalStatus](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.install.InstallState).hasTerminalStatus:kotlin.Boolean)`()` This signifies that this is a terminal status (there will be no more updates) and should be handled accordingly (success, cancellation or failure). |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)         | [InstallState](https://developer.android.com/reference/com/google/android/play/core/install/InstallState.html)`.`[installErrorCode](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.install.InstallState).installErrorCode:kotlin.Int)`()` Returns the error code for an install, or {@link InstallErrorCode#NO_ERROR}.                                                                              |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)         | [InstallState](https://developer.android.com/reference/com/google/android/play/core/install/InstallState.html)`.`[installStatus](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.install.InstallState).installStatus:kotlin.Int)`()` Returns the status of an install.                                                                                                                               |
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)   | [InstallState](https://developer.android.com/reference/com/google/android/play/core/install/InstallState.html)`.`[packageName](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.install.InstallState).packageName:kotlin.String)`()` Returns the package name for the app being installed.                                                                                                            |
| [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)       | [InstallState](https://developer.android.com/reference/com/google/android/play/core/install/InstallState.html)`.`[totalBytesToDownload](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.install.InstallState).totalBytesToDownload:kotlin.Long)`()` The total number of bytes to be downloaded for this update.                                                                                      |

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| For[com.google.android.play.core.splitinstall.SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                            ||
| [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)                                                                                                 | [SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html)`.`[bytesDownloaded](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallSessionState).bytesDownloaded:kotlin.Long)`()` The bytes downloaded by this update.                                                                   |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)                                                                                                   | [SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html)`.`[errorCode](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallSessionState).errorCode:kotlin.Int)`()` The error code of this update.                                                                                      |
| [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)                                                                                           | [SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html)`.`[hasTerminalStatus](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallSessionState).hasTerminalStatus:kotlin.Boolean)`()` Signifies that this update is terminal, meaning there will be no more updates for this session. |
| [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)\<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)\> | [SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html)`.`[languages](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallSessionState).languages:kotlin.collections.List)`()` The languages included by this update.                                                                 |
| [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)\<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)\> | [SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html)`.`[moduleNames](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallSessionState).moduleNames:kotlin.collections.List)`()` The modules included by this update.                                                               |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)                                                                                                   | [SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html)`.`[sessionId](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallSessionState).sessionId:kotlin.Int)`()` The session id of this update.                                                                                      |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)                                                                                                   | [SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html)`.`[status](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallSessionState).status:kotlin.Int)`()` The status code of this update.                                                                                           |
| [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)                                                                                                 | [SplitInstallSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html)`.`[totalBytesToDownload](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.splitinstall.SplitInstallSessionState).totalBytesToDownload:kotlin.Long)`()` The total bytes to download by this update.                                                  |

## Top-level functions

### SplitInstallStateUpdatedListener

```
fun SplitInstallStateUpdatedListener(
    onRequiresConfirmation: (SplitInstallSessionState) -> Unit, 
    onInstalled: (SplitInstallSessionState) -> Unit, 
    onFailed: (SplitInstallSessionState) -> Unit = {}, 
    onPending: (SplitInstallSessionState) -> Unit = {}, 
    onDownloaded: (SplitInstallSessionState) -> Unit = {}, 
    onDownloading: (SplitInstallSessionState) -> Unit = {}, 
    onInstalling: (SplitInstallSessionState) -> Unit = {}, 
    onCanceling: (SplitInstallSessionState) -> Unit = {}, 
    onCanceled: (SplitInstallSessionState) -> Unit = {}, 
    onNonTerminalStatus: (SplitInstallSessionState) -> Unit = {}, 
    onTerminalStatus: (SplitInstallSessionState) -> Unit = {}
): SplitInstallStateUpdatedListener
```

A convenience function for creating a[SplitInstallStateUpdatedListener](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallStateUpdatedListener.html).

The required states to handle are[onRequiresConfirmation](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#com.google.android.play.core.ktx$SplitInstallStateUpdatedListener(kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)))/onRequiresConfirmation), where you should start a confirmation request using[SplitInstallManager.startConfirmationDialogForResult](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#startConfirmationDialogForResult(com.google.android.play.core.splitinstall.SplitInstallSessionState, android.app.Activity, int)), and[onInstalled](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#com.google.android.play.core.ktx$SplitInstallStateUpdatedListener(kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)))/onInstalled)where you can start using the installed module.

All other arguments are optional and correspond with the[SplitInstallSessionStatus](https://developer.android.com/reference/com/google/android/play/core/splitinstall/model/SplitInstallSessionStatus.html)codes.

There are two special arguments (also optional):[onNonTerminalStatus](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#com.google.android.play.core.ktx$SplitInstallStateUpdatedListener(kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)))/onNonTerminalStatus)and[onTerminalStatus](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#com.google.android.play.core.ktx$SplitInstallStateUpdatedListener(kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)),%20kotlin.Function1((com.google.android.play.core.splitinstall.SplitInstallSessionState,%20kotlin.Unit)))/onTerminalStatus), which will be called in addition to the normal status codes. The first is called for all progress (non-terminal) status codes, while the latter for statuses that would return true for[SplitInstallSessionState.hasTerminalStatus](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html#hasTerminalStatus()), i.e. failure, cancellation and completion.

## Extension functions

### launchReview

```
suspend fun ReviewManager.launchReview(
    activity: Activity, 
    reviewInfo: ReviewInfo
): Unit
```

Suspending version of[ReviewManager.launchReviewFlow](https://developer.android.com/reference/com/google/android/play/core/review/ReviewManager.html#launchReviewFlow(android.app.Activity, com.google.android.play.core.review.ReviewInfo)).

Launches and displays the review flow to the user.

In some circumstances the review flow will not be shown to the user, e.g. they have already seen it recently, so do not assume that calling this method will always display the review dialog.

App should resume when this returns.  
**See Also**

- `
  `[ReviewManager.launchReviewFlow](https://developer.android.com/reference/com/google/android/play/core/review/ReviewManager.html#launchReviewFlow(android.app.Activity, com.google.android.play.core.review.ReviewInfo))
  `
`  

### requestAppUpdateInfo

```
suspend fun AppUpdateManager.requestAppUpdateInfo(): AppUpdateInfo
```

Requests the update availability for the current app  
**See Also**

- `
  `[AppUpdateManager.getAppUpdateInfo](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateManager.html#getAppUpdateInfo())
  `
`  

### requestCancelInstall

```
suspend fun SplitInstallManager.requestCancelInstall(sessionId: Int): Unit
```

Suspend version of[SplitInstallManager.cancelInstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#cancelInstall(int))  
**See Also**

- `
  `[SplitInstallManager.cancelInstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#cancelInstall(int))
  `
`  

### requestCellularDataConfirmation

```
suspend fun AssetPackManager.requestCellularDataConfirmation(activity: Activity): Int
```

Suspend version of[AssetPackManager.showCellularDataConfirmation](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html#showCellularDataConfirmation(android.app.Activity))  
**See Also**

- `
  `[AssetPackManager.showCellularDataConfirmation](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html#showCellularDataConfirmation(android.app.Activity))
  `
`  

### requestCompleteUpdate

```
suspend fun AppUpdateManager.requestCompleteUpdate(): Unit
```

For a flexible update flow, triggers the completion of the update.  
**See Also**

- `
  `[AppUpdateManager.completeUpdate](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateManager.html#completeUpdate())
  `
`  

### requestDeferredInstall

```
suspend fun SplitInstallManager.requestDeferredInstall(moduleNames: List<String>): Unit
```

Suspend version of[SplitInstallManager.deferredInstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#deferredInstall(java.util.List<java.lang.String>))  
**See Also**

- `
  `[SplitInstallManager.deferredInstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#deferredInstall(java.util.List<java.lang.String>))
  `
`  

### requestDeferredLanguageInstall

```
suspend fun SplitInstallManager.requestDeferredLanguageInstall(languages: List<Locale>): Unit
```

Suspend version of[SplitInstallManager.deferredLanguageInstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#deferredLanguageInstall(java.util.List<java.util.Locale>))  
**See Also**

- `
  `[SplitInstallManager.deferredLanguageInstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#deferredLanguageInstall(java.util.List<java.util.Locale>))
  `
`  

### requestDeferredLanguageUninstall

```
suspend fun SplitInstallManager.requestDeferredLanguageUninstall(languages: List<Locale>): Unit
```

Suspend version of[SplitInstallManager.deferredLanguageUninstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#deferredLanguageUninstall(java.util.List<java.util.Locale>))  
**See Also**

- `
  `[SplitInstallManager.deferredLanguageUninstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#deferredLanguageUninstall(java.util.List<java.util.Locale>))
  `
`  

### requestDeferredUninstall

```
suspend fun SplitInstallManager.requestDeferredUninstall(moduleNames: List<String>): Unit
```

Suspend version of[SplitInstallManager.deferredUninstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#deferredUninstall(java.util.List<java.lang.String>))  
**See Also**

- `
  `[SplitInstallManager.deferredUninstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#deferredUninstall(java.util.List<java.lang.String>))
  `
`  

### requestFetch

```
suspend fun AssetPackManager.requestFetch(packs: List<String>): AssetPackStates
```

Requests to download the specified asset packs.

|                                                                          Return                                                                           ||
|-----|------------------------------------------------------------------------------------------------------------------------------------------------------|
| the | [AssetPackStates](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackStates.html)for the requested asset packs |

|               Exceptions                ||
|----------------------|-------------------|
| `AssetPackException` | in case of errors |

**See Also**

- `
  `[AssetPackManager.fetch](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html#fetch(java.util.List<java.lang.String>))
  `
`  

### requestInstall

```
suspend fun SplitInstallManager.requestInstall(
    modules: List<String> = listOf(), 
    languages: List<String> = listOf()
): Int
```

Initiates installation of the requested modules/languages.

|                       Return                        ||
|--------------------------------------------------|---|
| the sessionId for the installation if successful |   |

|                                      Exceptions                                      ||
|-------------------------------------------------------------------|-------------------|
| `com.google.android.play.core.splitinstall.SplitInstallException` | in case of errors |

**See Also**

- `
  `[SplitInstallManager.startInstall](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#startInstall(com.google.android.play.core.splitinstall.SplitInstallRequest))
  `
`  

### requestPackStates

```
suspend fun AssetPackManager.requestPackStates(packs: List<String>): AssetPackStates
```

Suspend version of[AssetPackManager.getPackStates](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html#getPackStates(java.util.List<java.lang.String>))  
**See Also**

- `
  `[AssetPackManager.getPackStates](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html#getPackStates(java.util.List<java.lang.String>))
  `
`  

### requestProgressFlow

```
fun AssetPackManager.requestProgressFlow(packs: List<String>): Flow<AssetPackState>
```

Creates and returns a[Flow](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#)with a[Channel.UNLIMITED](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#)buffer that will deliver all progress events for the specified asset packs installations.

|               Exceptions                ||
|----------------------|-------------------|
| `AssetPackException` | in case of errors |

|                                                                           Return                                                                           ||
|---------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| [Flow](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#) | that emits progress events for asset pack installations |

### requestProgressFlow

```
fun SplitInstallManager.requestProgressFlow(): Flow<SplitInstallSessionState>
```

Creates and returns a[Flow](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#)with a[Channel.UNLIMITED](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#)buffer that will deliver all progress events for ongoing split installations.

Will clean up any listeners on the[SplitInstallManager](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html)when cancelled.

|                                      Exceptions                                      ||
|-------------------------------------------------------------------|-------------------|
| `com.google.android.play.core.splitinstall.SplitInstallException` | in case of errors |

|                                                                        Return                                                                         ||
|---------------------------------------------------------------------------------------------------|----------------------------------------------------|
| [Flow](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#) | that emits progress events for split installations |

### requestRemovePack

```
suspend fun AssetPackManager.requestRemovePack(packName: String): Unit
```

Suspend version of[AssetPackManager.removePack](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html#removePack(java.lang.String))  
**See Also**

- `
  `[AssetPackManager.removePack](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackManager.html#removePack(java.lang.String))
  `
`  

### requestReview

```
suspend fun ReviewManager.requestReview(): ReviewInfo
```

Suspending version of[ReviewManager.requestReviewFlow](https://developer.android.com/reference/com/google/android/play/core/review/ReviewManager.html#requestReviewFlow()).

Retrieves all the needed information to launch the review flow.

Needs to be called before[launchReview](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.review.ReviewManager).launchReview(android.app.Activity,%20com.google.android.play.core.review.ReviewInfo))to obtain an[ReviewInfo](https://developer.android.com/reference/com/google/android/play/core/review/ReviewInfo.html)object which is used to launch the review flow.  
**See Also**

- `
  `[ReviewManager.requestReviewFlow](https://developer.android.com/reference/com/google/android/play/core/review/ReviewManager.html#requestReviewFlow())
  `
`  

### requestSessionState

```
suspend fun SplitInstallManager.requestSessionState(sessionId: Int): SplitInstallSessionState
```

Suspend version of[SplitInstallManager.getSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#getSessionState(int))  
**See Also**

- `
  `[SplitInstallManager.getSessionState](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#getSessionState(int))
  `
`  

### requestSessionStates

```
suspend fun SplitInstallManager.requestSessionStates(): List<SplitInstallSessionState>
```

Suspend version of[SplitInstallManager.getSessionStates](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#getSessionStates())  
**See Also**

- `
  `[SplitInstallManager.getSessionStates](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#getSessionStates())
  `
`  

### requestUpdateFlow

```
fun AppUpdateManager.requestUpdateFlow(): Flow<AppUpdateResult>
```

Entry point for monitoring the availability and progress of updates. Creates and returns a[Flow](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#)that will emit events of type[AppUpdateResult](https://developer.android.com/reference/com/google/android/play/core/ktx/AppUpdateResult), which can be one of:

- [com.google.android.play.core.ktx.AppUpdateResult.Available](https://developer.android.com/reference/com/google/android/play/core/ktx/AppUpdateResult.Available)- when there is an update
- [com.google.android.play.core.ktx.AppUpdateResult.InProgress](https://developer.android.com/reference/com/google/android/play/core/ktx/AppUpdateResult.InProgress)- when an update is in progress
- [com.google.android.play.core.ktx.AppUpdateResult.Downloaded](https://developer.android.com/reference/com/google/android/play/core/ktx/AppUpdateResult.Downloaded)- when an update has been downloaded and is waiting for completion.
- [com.google.android.play.core.ktx.AppUpdateResult.NotAvailable](https://developer.android.com/reference/com/google/android/play/core/ktx/AppUpdateResult.NotAvailable)- when no update is available

The returned[Flow](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#)is using[Channel.CONFLATED](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#), meaning it will emit only the latest status.

|                                 Exceptions                                 ||
|--------------------|--------------------------------------------------------|
| `InstallException` | when there was a problem getting or installing updates |

### startConfirmationDialogForResult

```
fun SplitInstallManager.startConfirmationDialogForResult(
    sessionState: SplitInstallSessionState, 
    fragment: Fragment, 
    requestCode: Int
): Boolean
```

A version of[SplitInstallManager.startConfirmationDialogForResult](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallManager.html#startConfirmationDialogForResult(com.google.android.play.core.splitinstall.SplitInstallSessionState, android.app.Activity, int))that accepts an AndroidX Fragment for returning the result.  

### startUpdateFlowForResult

```
fun AppUpdateManager.startUpdateFlowForResult(
    appUpdateInfo: AppUpdateInfo, 
    appUpdateType: Int, 
    fragment: Fragment, 
    requestCode: Int
): Boolean
```

A version of[AppUpdateManager.startUpdateFlowForResult](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateManager.html#startUpdateFlowForResult(com.google.android.play.core.appupdate.AppUpdateInfo, int, android.app.Activity, int))that accepts an AndroidX Fragment for returning the result.

|                                                                                                                                                                      Parameters                                                                                                                                                                      ||
|----------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| appUpdateInfo:[AppUpdateInfo](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html) | An intent you use start an update. You get this using[AppUpdateManager.getAppUpdateInfo](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateManager.html#getAppUpdateInfo()). |
| appUpdateType:[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)                                         | A value from[AppUpdateType](https://developer.android.com/reference/com/google/android/play/core/install/model/AppUpdateType.html)that determines the type of update flow.                                         |
| fragment:Fragment                                                                                                                | the Fragment that will be used for[Fragment.onActivityResult](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#)                                                           |
| requestCode:[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)                                           | the request code that will be used for[Fragment.onActivityResult](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#)                                                       |

**See Also**

- `
  `[AppUpdateManager.startUpdateFlowForResult](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateManager.html#startUpdateFlowForResult(com.google.android.play.core.appupdate.AppUpdateInfo, int, android.app.Activity, int))
  `
  `

## Extension properties

### assetsPath

```
val AssetPackLocation.assetsPath: String?
```

The file path to the folder containing the asset pack's unpackaged assets, if the storage method is[AssetPackStorageMethod.STORAGE_FILES](https://developer.android.com/reference/com/google/android/play/core/assetpacks/model/AssetPackStorageMethod.html#STORAGE_FILES).

The files found in this path should not be modified.

If the storage method is[AssetPackStorageMethod.APK_ASSETS](https://developer.android.com/reference/com/google/android/play/core/assetpacks/model/AssetPackStorageMethod.html#APK_ASSETS), this contains`null`. To access assets from packs installed as APKs, use Asset Manager.  
**See Also**

- `
  `[AssetPackLocation.assetsPath](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackLocation.html#assetsPath())
  `
`  

### bytesDownloaded

```
val AppUpdateInfo.bytesDownloaded: Long
```

The number of bytes downloaded so far.

The return value is defined only if[installStatus](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.install.InstallState).installStatus:kotlin.Int)returns[InstallStatus.DOWNLOADING](https://developer.android.com/reference/com/google/android/play/core/install/model/InstallStatus.html#DOWNLOADING)  
**See Also**

- `
  `[AppUpdateInfo.bytesDownloaded](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html#bytesDownloaded())
  `
`  

### bytesDownloaded

```
val AssetPackState.bytesDownloaded: Long
```

The total number of bytes already downloaded for the pack.  
**See Also**

- `
  `[AssetPackState.bytesDownloaded](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html#bytesDownloaded())
  `
`  

### bytesDownloaded

```
val InstallState.bytesDownloaded: Long
```

The number of bytes downloaded so far.

The return value is defined only if[installStatus](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.install.InstallState).installStatus:kotlin.Int)returns[InstallStatus.DOWNLOADING](https://developer.android.com/reference/com/google/android/play/core/install/model/InstallStatus.html#DOWNLOADING)  
**See Also**

- `
  `[InstallState.bytesDownloaded](https://developer.android.com/reference/com/google/android/play/core/install/InstallState.html#bytesDownloaded())
  `
`  

### bytesDownloaded

```
val SplitInstallSessionState.bytesDownloaded: Long
```

The bytes downloaded by this update.  
**See Also**

- `
  `[SplitInstallSessionState.bytesDownloaded](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html#bytesDownloaded())
  `
`  

### clientVersionStalenessDays

```
val AppUpdateInfo.clientVersionStalenessDays: Int?
```

If an update is available or in progress, this method returns the number of days since the Google Play Store app on the user's device has learnt about an available update.

If update is not available, or if staleness information is unavailable, this method returns`null`.  

### errorCode

```
val AssetPackState.errorCode: Int
```

The error code for the pack, if Play has failed to download the pack.

[AssetPackErrorCode.NO_ERROR](https://developer.android.com/reference/com/google/android/play/core/assetpacks/model/AssetPackErrorCode.html#NO_ERROR)if the download was successful or is in progress or has not been attempted.  
**See Also**

- `
  `[AssetPackState.errorCode](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html#errorCode())
  `
  `

  [AssetPackErrorCode](https://developer.android.com/reference/com/google/android/play/core/assetpacks/model/AssetPackErrorCode.html)
  `
`  

### errorCode

```
val SplitInstallSessionState.errorCode: Int
```

The error code of this update.  
**See Also**

- `
  `[SplitInstallSessionState.errorCode](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html#errorCode())
  `
`  

### hasTerminalStatus

```
val InstallState.hasTerminalStatus: Boolean
```

This signifies that this is a terminal status (there will be no more updates) and should be handled accordingly (success, cancellation or failure).  

### hasTerminalStatus

```
val SplitInstallSessionState.hasTerminalStatus: Boolean
```

Signifies that this update is terminal, meaning there will be no more updates for this session.

It should be handled appropriately (cancellation, failure or completion).  
**See Also**

- `
  `[SplitInstallSessionState.hasTerminalStatus](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html#hasTerminalStatus())
  `
`  

### installErrorCode

```
val InstallState.installErrorCode: Int
```

Returns the error code for an install, or {@link InstallErrorCode#NO_ERROR}.  
**See Also**

- `
  `[InstallState.installErrorCode](https://developer.android.com/reference/com/google/android/play/core/install/InstallState.html#installErrorCode())
  `
  `

|               Return                ||
|--------------|-----------------------|
| a value from | {@link InstallStatus} |

### installStatus

```
val AppUpdateInfo.installStatus: Int
```

Returns the progress status of the update.  
**See Also**

- `
  `[AppUpdateInfo.installStatus](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html#installStatus())
  `
`  

### installStatus

```
val InstallState.installStatus: Int
```

Returns the status of an install.  
**See Also**

- `
  `[InstallState.installStatus](https://developer.android.com/reference/com/google/android/play/core/install/InstallState.html#installStatus())
  `
  `

|               Return                ||
|--------------|-----------------------|
| a value from | {@link InstallStatus} |

### isFlexibleUpdateAllowed

```
val AppUpdateInfo.isFlexibleUpdateAllowed: Boolean
```

Returns`true`if flexible update is allowed.  
**See Also**

- `
  `[AppUpdateInfo.isUpdateTypeAllowed](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html#isUpdateTypeAllowed(int))
  `
`  

### isImmediateUpdateAllowed

```
val AppUpdateInfo.isImmediateUpdateAllowed: Boolean
```

Returns`true`if immediate update is allowed.  
**See Also**

- `
  `[AppUpdateInfo.isUpdateTypeAllowed](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html#isUpdateTypeAllowed(int))
  `
`  

### languages

```
val SplitInstallSessionState.languages: List<String>
```

The languages included by this update.  
**See Also**

- `
  `[SplitInstallSessionState.languages](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html#languages())
  `
`  

### moduleNames

```
val SplitInstallSessionState.moduleNames: List<String>
```

The modules included by this update.  
**See Also**

- `
  `[SplitInstallSessionState.moduleNames](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html#moduleNames())
  `
`  

### name

```
val AssetPackState.name: String
```

The name of the pack.  
**See Also**

- `
  `[AssetPackState.name](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html#name())
  `
`  

### offset

```
val AssetLocation.offset: Long
```

The file offset where the asset starts, in bytes.  
**See Also**

- `
  `[AssetLocation.offset](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetLocation.html#offset())
  `
`  

### packStates

```
val AssetPackStates.packStates: Map<String, AssetPackState>
```

Map from pack name to[AssetPackState](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html).  

### packStorageMethod

```
val AssetPackLocation.packStorageMethod: Int
```

Whether the pack is installed as an APK or unpackaged into a folder on the filesystem.  
**See Also**

- `
  `[AssetPackLocation.packStorageMethod](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackLocation.html#packStorageMethod())
  `
  `

  [AssetPackStorageMethod](https://developer.android.com/reference/com/google/android/play/core/assetpacks/model/AssetPackStorageMethod.html)
  `
`  

### packageName

```
val InstallState.packageName: String
```

Returns the package name for the app being installed.  
**See Also**

- `
  `[InstallState.packageName](https://developer.android.com/reference/com/google/android/play/core/install/InstallState.html#packageName())
  `
`  

### path

```
val AssetLocation.path: String
```

The path to the file containing the asset.  
**See Also**

- `
  `[AssetLocation.path](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetLocation.html#path())
  `
`  

### path

```
val AssetPackLocation.path: String?
```

Returns the file path to the folder containing the unpackaged asset pack, if the storage method is[AssetPackStorageMethod.STORAGE_FILES](https://developer.android.com/reference/com/google/android/play/core/assetpacks/model/AssetPackStorageMethod.html#STORAGE_FILES).

The files found in this path should not be modified.

If the storage method is[AssetPackStorageMethod.APK_ASSETS](https://developer.android.com/reference/com/google/android/play/core/assetpacks/model/AssetPackStorageMethod.html#APK_ASSETS), this method will return`null`. To access assets from packs installed as APKs, use Asset Manager.  
**See Also**

- `
  `[AssetPackLocation.path](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackLocation.html#path())
  `
`  

### sessionId

```
val SplitInstallSessionState.sessionId: Int
```

The session id of this update.  

### size

```
val AssetLocation.size: Long
```

The size of the asset, in bytes.  
**See Also**

- `
  `[AssetLocation.size](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetLocation.html#size())
  `
`  

### status

```
val AssetPackState.status: Int
```

The download status of the pack.  
**See Also**

- `
  `[AssetPackState.status](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html#status())
  `
  `

  [AssetPackStatus](https://developer.android.com/reference/com/google/android/play/core/assetpacks/model/AssetPackStatus.html)
  `
`  

### status

```
val SplitInstallSessionState.status: Int
```

The status code of this update.  
**See Also**

- `
  `[SplitInstallSessionState.status](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html#status())
  `
`  

### totalBytes

```
val AssetPackStates.totalBytes: Long
```

Total size of all requested packs in bytes.  

### totalBytesToDownload

```
val AppUpdateInfo.totalBytesToDownload: Long
```

The total number of bytes to be downloaded for this update.

The return value is defined only if[installStatus](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.install.InstallState).installStatus:kotlin.Int)returns[InstallStatus.DOWNLOADING](https://developer.android.com/reference/com/google/android/play/core/install/model/InstallStatus.html#DOWNLOADING)  
**See Also**

- `
  `[AppUpdateInfo.totalBytesToDownload](https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateInfo.html#totalBytesToDownload())
  `
`  

### totalBytesToDownload

```
val AssetPackState.totalBytesToDownload: Long
```

The total size of the pack in bytes.  
**See Also**

- `
  `[AssetPackState.totalBytesToDownload](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html#totalBytesToDownload())
  `
`  

### totalBytesToDownload

```
val InstallState.totalBytesToDownload: Long
```

The total number of bytes to be downloaded for this update.

The return value is defined only if[installStatus](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#(com.google.android.play.core.install.InstallState).installStatus:kotlin.Int)returns[InstallStatus.DOWNLOADING](https://developer.android.com/reference/com/google/android/play/core/install/model/InstallStatus.html#DOWNLOADING)  
**See Also**

- `
  `[InstallState.totalBytesToDownload](https://developer.android.com/reference/com/google/android/play/core/install/InstallState.html#totalBytesToDownload())
  `
`  

### totalBytesToDownload

```
val SplitInstallSessionState.totalBytesToDownload: Long
```

The total bytes to download by this update.  
**See Also**

- `
  `[SplitInstallSessionState.totalBytesToDownload](https://developer.android.com/reference/com/google/android/play/core/splitinstall/SplitInstallSessionState.html#totalBytesToDownload())
  `
`  

### transferProgressPercentage

```
val AssetPackState.transferProgressPercentage: Int
```

Returns the percentage of the asset pack already transferred to the app.

This value is only defined when the status is[AssetPackStatus.TRANSFERRING](https://developer.android.com/reference/com/google/android/play/core/assetpacks/model/AssetPackStatus.html#TRANSFERRING)  
**See Also**

- `
  `[AssetPackState.transferProgressPercentage](https://developer.android.com/reference/com/google/android/play/core/assetpacks/AssetPackState.html#transferProgressPercentage())
  `
`  

### updatePriority

```
val AppUpdateInfo.updatePriority: Int
```

Returns the in-app update priority for this update, as defined by the developer in the Google Play Developer API.

The return value is defined only if[updateAvailability](https://developer.android.com/reference/com/google/android/play/core/ktx/package-summary#)returns[UpdateAvailability.UPDATE_AVAILABLE](https://developer.android.com/reference/com/google/android/play/core/install/model/UpdateAvailability.html#UPDATE_AVAILABLE).