Token

public final class Token


Stores a package's identity, a combination of its package name and signing certificate. It is designed to be persistable as a byte[], so you can do this:

Token token = Token.create(packageName, packageManager);
byte[] serialized = token.serialize();
// Persist serialized.

// Some time later...
Token verified = Token.deserialize(serialized);
verified.matches(packageName, packageManager);

Summary

Public methods

static @Nullable Token
create(@NonNull String packageName, @NonNull PackageManager packageManager)

Creates a Token for the given package, taking into account the package name and its signing signature.

static @NonNull Token
deserialize(@NonNull byte[] serialized)

Reconstructs a Token from the output of its serialize.

boolean
matches(
    @NonNull String packageName,
    @NonNull PackageManager packageManager
)

Whether the given package matches the package that was used to create the original Token.

@NonNull byte[]

Serializes the Token to a form that can later be restored by the deserialize method.

Public methods

create

Added in 1.2.0
public static @Nullable Token create(@NonNull String packageName, @NonNull PackageManager packageManager)

Creates a Token for the given package, taking into account the package name and its signing signature.

Parameters
@NonNull String packageName

The name of the package.

@NonNull PackageManager packageManager

A PackageManager to determine the signing information.

Returns
@Nullable Token

A Token. null if the provided package cannot be found (the app is not installed).

deserialize

Added in 1.2.0
public static @NonNull Token deserialize(@NonNull byte[] serialized)

Reconstructs a Token from the output of its serialize.

Parameters
@NonNull byte[] serialized

The result of a serialize call.

Returns
@NonNull Token

The deserialized Token.

matches

Added in 1.2.0
public boolean matches(
    @NonNull String packageName,
    @NonNull PackageManager packageManager
)

Whether the given package matches the package that was used to create the original Token.

Parameters
@NonNull String packageName

The name of the package.

@NonNull PackageManager packageManager

A PackageManager to get information about the package.

Returns
boolean

Whether the given package currently is the same as the one used to create the Token.

serialize

Added in 1.2.0
public @NonNull byte[] serialize()

Serializes the Token to a form that can later be restored by the deserialize method.

Returns
@NonNull byte[]

A serialization of the Token.