# PackageInfoBuilder

Artifact: [androidx.test:core](https://developer.android.com/jetpack/androidx/releases/test) [View Source](https://cs.android.com/search?q=file:androidx/test/core/content/pm/PackageInfoBuilder.java+class:androidx.test.core.content.pm.PackageInfoBuilder)

*** ** * ** ***


```
public final class PackageInfoBuilder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/android/content/pm/PackageInfo.html`.

## Summary

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder` | `https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder#addRequestedPermission(java.lang.String,int)( https://developer.android.com/reference/java/lang/String.html requestedPermission, int requestedPermissionFlag )` Adds a requested permission and its flag for the app. |
| `https://developer.android.com/reference/android/content/pm/PackageInfo.html` | `https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder#build()()` Returns a `https://developer.android.com/reference/android/content/pm/PackageInfo.html` with the provided data. |
| `static https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder` | `https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder#newBuilder()()` Start building a new `https://developer.android.com/reference/android/content/pm/PackageInfo.html`. |
| `https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder` | `https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder#setApplicationInfo(android.content.pm.ApplicationInfo)(https://developer.android.com/reference/android/content/pm/ApplicationInfo.html applicationInfo)` Sets the application info. |
| `https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder` | `https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder#setPackageName(java.lang.String)(https://developer.android.com/reference/java/lang/String.html packageName)` Sets the package name. |
| `https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder` | `@https://developer.android.com/reference/android/annotation/TargetApi.html(value = https://developer.android.com/reference/android/os/Build.VERSION_CODES.html#P) https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder#setVersionCode(long)(long longVersionCode)` Sets the version code. |
| `https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder` | `https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder#setVersionName(java.lang.String)(https://developer.android.com/reference/java/lang/String.html versionName)` Sets the version name. |

## Public methods

### addRequestedPermission

```
public PackageInfoBuilder addRequestedPermission(
    String requestedPermission,
    int requestedPermissionFlag
)
```

Adds a requested permission and its flag for the app.

This can be called several times to add multiple permissions.

| See also |
|---|---|
| `https://developer.android.com/reference/android/content/pm/PackageInfo.html#requestedPermissions` |   |
| `https://developer.android.com/reference/android/content/pm/PackageInfo.html#requestedPermissionsFlags` |   |

### build

```
public PackageInfo build()
```

Returns a `https://developer.android.com/reference/android/content/pm/PackageInfo.html` with the provided data.

### newBuilder

```
public static PackageInfoBuilder newBuilder()
```

Start building a new `https://developer.android.com/reference/android/content/pm/PackageInfo.html`.

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder` | a new instance of `https://developer.android.com/reference/androidx/test/core/content/pm/PackageInfoBuilder`. |

### setApplicationInfo

```
public PackageInfoBuilder setApplicationInfo(ApplicationInfo applicationInfo)
```

Sets the application info.

Default is `null`

| See also |
|---|---|
| `https://developer.android.com/reference/android/content/pm/PackageInfo.html#applicationInfo` |   |

### setPackageName

```
public PackageInfoBuilder setPackageName(String packageName)
```

Sets the package name.

Default is `null`.

| See also |
|---|---|
| `https://developer.android.com/reference/android/content/pm/PackageInfo.html#packageName` |   |

### setVersionCode

```
@TargetApi(value = Build.VERSION_CODES.P)
public PackageInfoBuilder setVersionCode(long longVersionCode)
```

Sets the version code.

On SDK P+, this value will be returned for both `https://developer.android.com/reference/android/content/pm/PackageInfo.html#getLongVersionCode()` and `https://developer.android.com/reference/android/content/pm/PackageInfo.html#versionCode`. Note that the value of `https://developer.android.com/reference/android/content/pm/PackageInfo.html#versionCode` will be truncated if a value larger than Integer.MAX_VALUE is provided.

Default is 0L.

| See also |
|---|---|
| `https://developer.android.com/reference/android/content/pm/PackageInfo.html#setLongVersionCode(long)` |   |
| `https://developer.android.com/reference/android/content/pm/PackageInfo.html#versionCode` |   |

### setVersionName

```
public PackageInfoBuilder setVersionName(String versionName)
```

Sets the version name.

Default is `null`.

| See also |
|---|---|
| `https://developer.android.com/reference/android/content/pm/PackageInfo.html#versionName` |   |