# PackageInstaller.UnarchivalState

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

# UnarchivalState

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/android/content/pm/PackageInstaller.UnarchivalState "View this page in Java")  

```
class UnarchivalState
```

|---|------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)                                                                             ||
| ↳ | [android.content.pm.PackageInstaller.UnarchivalState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#) |

Used to communicate the unarchival state in[reportUnarchivalState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller#reportUnarchivalState(android.content.pm.PackageInstaller.UnarchivalState)).

## Summary

|                                                                                                                                                                                                                                                                                                                                                                                      Public methods                                                                                                                                                                                                                                                                                                                                                                                       ||
|-----------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| static[PackageInstaller.UnarchivalState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#) | [createGenericErrorState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#createGenericErrorState(kotlin.Int))`(`unarchiveId:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Generic error state for all cases that are not covered by other methods in this class.                                                                                                                                                                                                                                                                                    |
| static[PackageInstaller.UnarchivalState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#) | [createInsufficientStorageState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#createInsufficientStorageState(kotlin.Int,%20kotlin.Long,%20android.app.PendingIntent))`(`unarchiveId:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, `requiredStorageBytes:` `[Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)`, `userActionIntent:` `[PendingIntent](https://developer.android.com/reference/kotlin/android/app/PendingIntent.html#)?`)` There is not enough storage to start the unarchival for the given`unarchiveId`. |
| static[PackageInstaller.UnarchivalState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#) | [createNoConnectivityState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#createNoConnectivityState(kotlin.Int))`(`unarchiveId:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` The device has no data connectivity and unarchival cannot be started for the given`unarchiveId`.                                                                                                                                                                                                                                                                      |
| static[PackageInstaller.UnarchivalState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#) | [createOkState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#createOkState(kotlin.Int))`(`unarchiveId:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` The caller is able to facilitate the unarchival for the given`unarchiveId`.                                                                                                                                                                                                                                                                                                                   |
| static[PackageInstaller.UnarchivalState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#) | [createUserActionRequiredState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#createUserActionRequiredState(kotlin.Int,%20android.app.PendingIntent))`(`unarchiveId:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, `userActionIntent:` `[PendingIntent](https://developer.android.com/reference/kotlin/android/app/PendingIntent.html#)`)` User action is required before commencing with the unarchival for the given`unarchiveId`.                                                                                                                 |

## Public methods

### createGenericErrorState

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

```
static fun createGenericErrorState(unarchiveId: Int): PackageInstaller.UnarchivalState
```

Generic error state for all cases that are not covered by other methods in this class.

|                                                                                            Parameters                                                                                             ||
|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `unarchiveId` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):the ID provided by the system as part of the intent.action.UNARCHIVE broadcast with EXTRA_UNARCHIVE_ID. |

|                                                                                Return                                                                                ||
|-----------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| [PackageInstaller.UnarchivalState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#) | This value cannot be`null`. |

### createInsufficientStorageState

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

```
static fun createInsufficientStorageState(
    unarchiveId: Int, 
    requiredStorageBytes: Long, 
    userActionIntent: PendingIntent?
): PackageInstaller.UnarchivalState
```

There is not enough storage to start the unarchival for the given`unarchiveId`.

|                                                                                                                               Parameters                                                                                                                               ||
|------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `unarchiveId`          | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):the ID provided by the system as part of the intent.action.UNARCHIVE broadcast with EXTRA_UNARCHIVE_ID.                                                             |
| `requiredStorageBytes` | [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html):ff the error is UNARCHIVAL_ERROR_INSUFFICIENT_STORAGE this field should be set to specify how many additional bytes of storage are required to unarchive the app. |
| `userActionIntent`     | [PendingIntent](https://developer.android.com/reference/kotlin/android/app/PendingIntent.html#)?:can optionally be set to provide a custom storage-clearing action. This value may be`null`.                                                   |

|                                                                                Return                                                                                ||
|-----------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| [PackageInstaller.UnarchivalState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#) | This value cannot be`null`. |

### createNoConnectivityState

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

```
static fun createNoConnectivityState(unarchiveId: Int): PackageInstaller.UnarchivalState
```

The device has no data connectivity and unarchival cannot be started for the given`unarchiveId`.

|                                                                                            Parameters                                                                                             ||
|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `unarchiveId` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):the ID provided by the system as part of the intent.action.UNARCHIVE broadcast with EXTRA_UNARCHIVE_ID. |

|                                                                                Return                                                                                ||
|-----------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| [PackageInstaller.UnarchivalState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#) | This value cannot be`null`. |

### createOkState

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

```
static fun createOkState(unarchiveId: Int): PackageInstaller.UnarchivalState
```

The caller is able to facilitate the unarchival for the given`unarchiveId`.

|                                                                                            Parameters                                                                                             ||
|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `unarchiveId` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):the ID provided by the system as part of the intent.action.UNARCHIVE broadcast with EXTRA_UNARCHIVE_ID. |

|                                                                                Return                                                                                ||
|-----------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| [PackageInstaller.UnarchivalState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#) | This value cannot be`null`. |

### createUserActionRequiredState

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

```
static fun createUserActionRequiredState(
    unarchiveId: Int, 
    userActionIntent: PendingIntent
): PackageInstaller.UnarchivalState
```

User action is required before commencing with the unarchival for the given`unarchiveId`. E.g., this could be used if it's necessary for the user to sign-in first.

|                                                                                                                             Parameters                                                                                                                              ||
|--------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `unarchiveId`      | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):the ID provided by the system as part of the intent.action.UNARCHIVE broadcast with EXTRA_UNARCHIVE_ID.                                                              |
| `userActionIntent` | [PendingIntent](https://developer.android.com/reference/kotlin/android/app/PendingIntent.html#):optional intent to start a follow up action required to facilitate the unarchival flow (e.g. user needs to log in). This value cannot be`null`. |

|                                                                                Return                                                                                ||
|-----------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| [PackageInstaller.UnarchivalState](https://developer.android.com/reference/kotlin/android/content/pm/PackageInstaller.UnarchivalState#) | This value cannot be`null`. |