# PackageIdentifier

Artifact: [androidx.appsearch:appsearch](https://developer.android.com/jetpack/androidx/releases/appsearch) [View Source](https://cs.android.com/search?q=file:androidx/appsearch/app/PackageIdentifier.java+class:androidx.appsearch.app.PackageIdentifier) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

*** ** * ** ***


```
public class PackageIdentifier
```

<br />

*** ** * ** ***

This class represents a uniquely identifiable package.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/appsearch/app/PackageIdentifier#PackageIdentifier(java.lang.String,byte[])( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html packageName, @https://developer.android.com/reference/androidx/annotation/NonNull byte[] sha256Certificate )` Creates a unique identifier for a package. |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/appsearch/app/PackageIdentifier#equals(java.lang.Object)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html obj)` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/appsearch/app/PackageIdentifier#getPackageName()()` Returns the name for a package. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull byte[]` | `https://developer.android.com/reference/androidx/appsearch/app/PackageIdentifier#getSha256Certificate()()` Returns the SHA-256 certificate for a package. |
| `int` | `https://developer.android.com/reference/androidx/appsearch/app/PackageIdentifier#hashCode()()` |

## Public constructors

### PackageIdentifier

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
public PackageIdentifier(
    @NonNull String packageName,
    @NonNull byte[] sha256Certificate
)
```

Creates a unique identifier for a package.

SHA-256 certificate digests for a signed application can be retrieved with the [apksigner tool](https://developer.android.com/studio/command-line/apksigner) that is part of the Android SDK build tools. Use `apksigner verify --print-certs path/to/apk.apk` to retrieve the SHA-256 certificate digest for the target application. Once retrieved, the SHA-256 certificate digest should be converted to a `byte[]` by decoding it in base16:

```
new android.content.pm.Signature(outputDigest).toByteArray();
```

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html packageName` | Name of the package. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull byte[] sha256Certificate` | SHA-256 certificate digest of the package. |

## Public methods

### equals

```
public boolean equals(@Nullable Object obj)
```

### getPackageName

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
public @NonNull String getPackageName()
```

Returns the name for a package.

### getSha256Certificate

Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/appsearch#1.1.0)

```
public @NonNull byte[] getSha256Certificate()
```

Returns the SHA-256 certificate for a package.

### hashCode

```
public int hashCode()
```