script-astra/Android/Sdk/sources/android-35/android/hardware/biometrics/fingerprint/ISessionCallback.java
localadmin 4380f00a78 init
2025-01-20 18:15:20 +03:00

1174 lines
48 KiB
Java

/*
* This file is auto-generated. DO NOT MODIFY.
* Using: out/host/linux-x86/bin/aidl --lang=java -Weverything -Wno-missing-permission-annotation --structured --version 5 --hash notfrozen -t --stability vintf --min_sdk_version platform_apis -pout/soong/.intermediates/hardware/interfaces/biometrics/common/aidl/android.hardware.biometrics.common_interface/4/preprocessed.aidl -pout/soong/.intermediates/hardware/interfaces/keymaster/aidl/android.hardware.keymaster_interface/4/preprocessed.aidl --previous_api_dir=hardware/interfaces/biometrics/fingerprint/aidl/aidl_api/android.hardware.biometrics.fingerprint/4 --previous_hash 41a730a7a6b5aa9cebebce70ee5b5e509b0af6fb --ninja -d out/soong/.intermediates/hardware/interfaces/biometrics/fingerprint/aidl/android.hardware.biometrics.fingerprint-V5-java-source/gen/android/hardware/biometrics/fingerprint/ISessionCallback.java.d -o out/soong/.intermediates/hardware/interfaces/biometrics/fingerprint/aidl/android.hardware.biometrics.fingerprint-V5-java-source/gen -Nhardware/interfaces/biometrics/fingerprint/aidl hardware/interfaces/biometrics/fingerprint/aidl/android/hardware/biometrics/fingerprint/ISessionCallback.aidl
*/
package android.hardware.biometrics.fingerprint;
/** @hide */
public interface ISessionCallback extends android.os.IInterface
{
/**
* The version of this interface that the caller is built against.
* This might be different from what {@link #getInterfaceVersion()
* getInterfaceVersion} returns as that is the version of the interface
* that the remote object is implementing.
*/
public static final int VERSION = true ? 4 : 5;
public static final String HASH = "41a730a7a6b5aa9cebebce70ee5b5e509b0af6fb";
/** Default implementation for ISessionCallback. */
public static class Default implements android.hardware.biometrics.fingerprint.ISessionCallback
{
/** Notifies the framework when a challenge is successfully generated. */
@Override public void onChallengeGenerated(long challenge) throws android.os.RemoteException
{
}
/** Notifies the framework when a challenge has been revoked. */
@Override public void onChallengeRevoked(long challenge) throws android.os.RemoteException
{
}
/**
* This method must only be used to notify the framework during the following operations:
* - ISession#enroll
* - ISession#authenticate
* - ISession#detectInteraction
*
* These messages may be used to provide user guidance multiple times per operation if
* necessary.
*
* @param info See the AcquiredInfo enum.
* @param vendorCode Only valid if info == AcquiredInfo::VENDOR. The vendorCode must be used to
* index into the configuration
* com.android.internal.R.array.fingerprint_acquired_vendor that's installed
* on the vendor partition.
*/
@Override public void onAcquired(byte info, int vendorCode) throws android.os.RemoteException
{
}
/**
* This method must only be used to notify the framework during the following operations:
* - ISession#enroll
* - ISession#authenticate
* - ISession#detectInteraction
* - ISession#invalidateAuthenticatorId
* - ISession#resetLockout
*
* These messages may be used to notify the framework or user that a non-recoverable error
* has occurred. The operation is finished, and the HAL can proceed with the next operation
* or return to the idling state.
*
* Note that cancellation (see common::ICancellationSignal) must be followed with an
* Error::CANCELED message.
*
* @param error See the Error enum.
* @param vendorCode Only valid if error == Error::VENDOR. The vendorCode must be used to index
* into the configuration
* com.android.internal.R.fingerprint_error_vendor that's installed on the
* vendor partition.
*/
@Override public void onError(byte error, int vendorCode) throws android.os.RemoteException
{
}
/**
* This method must only be used to notify the framework during the ISession#enroll operation.
*
* @param enrollmentId Unique stable identifier for the enrollment that's being added by this
* ISession#enroll invocation.
* @param remaining Remaining number of steps before enrollment is complete.
*/
@Override public void onEnrollmentProgress(int enrollmentId, int remaining) throws android.os.RemoteException
{
}
/**
* This method must only be used to notify the framework during ISession#authenticate.
*
* Used to notify the framework upon successful authentication. Note that the authentication
* lifecycle ends when either 1) a fingerprint is accepted, or 2) an error occurred. The
* authentication lifecycle does NOT end when a fingerprint is rejected.
*
* @param enrollmentId Fingerprint that was accepted.
* @param hat If the sensor is configured as SensorStrength::STRONG, a non-null attestation that
* a fingerprint was accepted. The HardwareAuthToken's "challenge" field must be set
* with the operationId passed in during ISession#authenticate. If the sensor is NOT
* SensorStrength::STRONG, the HardwareAuthToken MUST be null.
*/
@Override public void onAuthenticationSucceeded(int enrollmentId, android.hardware.keymaster.HardwareAuthToken hat) throws android.os.RemoteException
{
}
/**
* This method must only be used to notify the framework during ISession#authenticate.
*
* Used to notify the framework upon rejected attempts. Note that the authentication
* lifecycle ends when either 1) a fingerprint is accepted, or 2) an error occurred.
* The authentication lifecycle does NOT end when a fingerprint is rejected.
*/
@Override public void onAuthenticationFailed() throws android.os.RemoteException
{
}
/**
* This method must only be used to notify the framework during ISession#authenticate.
*
* Authentication is locked out due to too many unsuccessful attempts. This is a rate-limiting
* lockout, and authentication can be restarted after a period of time. See
* ISession#resetLockout.
*
* @param sensorId Sensor for which the user is locked out.
* @param userId User for which the sensor is locked out.
* @param durationMillis Remaining duration of the lockout.
*/
@Override public void onLockoutTimed(long durationMillis) throws android.os.RemoteException
{
}
/**
* This method must only be used to notify the framework during ISession#authenticate.
*
* Authentication is disabled until the user unlocks with their device credential
* (PIN/Pattern/Password). See ISession#resetLockout.
*
* @param sensorId Sensor for which the user is locked out.
* @param userId User for which the sensor is locked out.
*/
@Override public void onLockoutPermanent() throws android.os.RemoteException
{
}
/**
* Notifies the framework that lockout has been cleared for this (sensorId, userId) pair.
*
* Note that this method can be used to notify the framework during any state.
*
* Lockout can be cleared in the following scenarios:
* 1) A timed lockout has ended (e.g. durationMillis specified in previous #onLockoutTimed
* has expired.
* 2) See ISession#resetLockout.
*
* @param sensorId Sensor for which the user's lockout is cleared.
* @param userId User for the sensor's lockout is cleared.
*/
@Override public void onLockoutCleared() throws android.os.RemoteException
{
}
/**
* This method must only be used to notify the framework during
* ISession#detectInteraction
*
* Notifies the framework that user interaction occurred. See ISession#detectInteraction.
*/
@Override public void onInteractionDetected() throws android.os.RemoteException
{
}
/**
* This method must only be used to notify the framework during
* ISession#enumerateEnrollments.
*
* Notifies the framework of the current enrollments. See ISession#enumerateEnrollments.
*
* @param enrollmentIds A list of enrollments for the session's (userId, sensorId) pair.
*/
@Override public void onEnrollmentsEnumerated(int[] enrollmentIds) throws android.os.RemoteException
{
}
/**
* This method must only be used to notify the framework during
* ISession#removeEnrollments.
*
* Notifies the framework that the specified enrollments are removed.
*
* @param enrollmentIds The enrollments that were removed.
*/
@Override public void onEnrollmentsRemoved(int[] enrollmentIds) throws android.os.RemoteException
{
}
/**
* This method must only be used to notify the framework during
* ISession#getAuthenticatorId.
*
* Notifies the framework with the authenticatorId corresponding to this session's
* (userId, sensorId) pair.
*
* @param authenticatorId See the above documentation.
*/
@Override public void onAuthenticatorIdRetrieved(long authenticatorId) throws android.os.RemoteException
{
}
/**
* This method must only be used to notify the framework during
* ISession#invalidateAuthenticatorId.
*
* See ISession#invalidateAuthenticatorId for more information.
*
* @param newAuthenticatorId The new entropy-encoded random identifier associated with the
* current set of enrollments.
*/
@Override public void onAuthenticatorIdInvalidated(long newAuthenticatorId) throws android.os.RemoteException
{
}
/**
* This method notifes the client that this session has closed.
* The client must not make any more calls to this session.
*/
@Override public void onSessionClosed() throws android.os.RemoteException
{
}
@Override
public int getInterfaceVersion() {
return 0;
}
@Override
public String getInterfaceHash() {
return "";
}
@Override
public android.os.IBinder asBinder() {
return null;
}
}
/** Local-side IPC implementation stub class. */
public static abstract class Stub extends android.os.Binder implements android.hardware.biometrics.fingerprint.ISessionCallback
{
/** Construct the stub at attach it to the interface. */
@SuppressWarnings("this-escape")
public Stub()
{
this.markVintfStability();
this.attachInterface(this, DESCRIPTOR);
}
/**
* Cast an IBinder object into an android.hardware.biometrics.fingerprint.ISessionCallback interface,
* generating a proxy if needed.
*/
public static android.hardware.biometrics.fingerprint.ISessionCallback asInterface(android.os.IBinder obj)
{
if ((obj==null)) {
return null;
}
android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR);
if (((iin!=null)&&(iin instanceof android.hardware.biometrics.fingerprint.ISessionCallback))) {
return ((android.hardware.biometrics.fingerprint.ISessionCallback)iin);
}
return new android.hardware.biometrics.fingerprint.ISessionCallback.Stub.Proxy(obj);
}
@Override public android.os.IBinder asBinder()
{
return this;
}
/** @hide */
public static java.lang.String getDefaultTransactionName(int transactionCode)
{
switch (transactionCode)
{
case TRANSACTION_onChallengeGenerated:
{
return "onChallengeGenerated";
}
case TRANSACTION_onChallengeRevoked:
{
return "onChallengeRevoked";
}
case TRANSACTION_onAcquired:
{
return "onAcquired";
}
case TRANSACTION_onError:
{
return "onError";
}
case TRANSACTION_onEnrollmentProgress:
{
return "onEnrollmentProgress";
}
case TRANSACTION_onAuthenticationSucceeded:
{
return "onAuthenticationSucceeded";
}
case TRANSACTION_onAuthenticationFailed:
{
return "onAuthenticationFailed";
}
case TRANSACTION_onLockoutTimed:
{
return "onLockoutTimed";
}
case TRANSACTION_onLockoutPermanent:
{
return "onLockoutPermanent";
}
case TRANSACTION_onLockoutCleared:
{
return "onLockoutCleared";
}
case TRANSACTION_onInteractionDetected:
{
return "onInteractionDetected";
}
case TRANSACTION_onEnrollmentsEnumerated:
{
return "onEnrollmentsEnumerated";
}
case TRANSACTION_onEnrollmentsRemoved:
{
return "onEnrollmentsRemoved";
}
case TRANSACTION_onAuthenticatorIdRetrieved:
{
return "onAuthenticatorIdRetrieved";
}
case TRANSACTION_onAuthenticatorIdInvalidated:
{
return "onAuthenticatorIdInvalidated";
}
case TRANSACTION_onSessionClosed:
{
return "onSessionClosed";
}
case TRANSACTION_getInterfaceVersion:
{
return "getInterfaceVersion";
}
case TRANSACTION_getInterfaceHash:
{
return "getInterfaceHash";
}
default:
{
return null;
}
}
}
/** @hide */
public java.lang.String getTransactionName(int transactionCode)
{
return this.getDefaultTransactionName(transactionCode);
}
@Override public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException
{
java.lang.String descriptor = DESCRIPTOR;
if (code >= android.os.IBinder.FIRST_CALL_TRANSACTION && code <= android.os.IBinder.LAST_CALL_TRANSACTION) {
data.enforceInterface(descriptor);
}
if (code == INTERFACE_TRANSACTION) {
reply.writeString(descriptor);
return true;
}
else if (code == TRANSACTION_getInterfaceVersion) {
reply.writeNoException();
reply.writeInt(getInterfaceVersion());
return true;
}
else if (code == TRANSACTION_getInterfaceHash) {
reply.writeNoException();
reply.writeString(getInterfaceHash());
return true;
}
switch (code)
{
case TRANSACTION_onChallengeGenerated:
{
long _arg0;
_arg0 = data.readLong();
data.enforceNoDataAvail();
this.onChallengeGenerated(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_onChallengeRevoked:
{
long _arg0;
_arg0 = data.readLong();
data.enforceNoDataAvail();
this.onChallengeRevoked(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_onAcquired:
{
byte _arg0;
_arg0 = data.readByte();
int _arg1;
_arg1 = data.readInt();
data.enforceNoDataAvail();
this.onAcquired(_arg0, _arg1);
reply.writeNoException();
break;
}
case TRANSACTION_onError:
{
byte _arg0;
_arg0 = data.readByte();
int _arg1;
_arg1 = data.readInt();
data.enforceNoDataAvail();
this.onError(_arg0, _arg1);
reply.writeNoException();
break;
}
case TRANSACTION_onEnrollmentProgress:
{
int _arg0;
_arg0 = data.readInt();
int _arg1;
_arg1 = data.readInt();
data.enforceNoDataAvail();
this.onEnrollmentProgress(_arg0, _arg1);
reply.writeNoException();
break;
}
case TRANSACTION_onAuthenticationSucceeded:
{
int _arg0;
_arg0 = data.readInt();
android.hardware.keymaster.HardwareAuthToken _arg1;
_arg1 = data.readTypedObject(android.hardware.keymaster.HardwareAuthToken.CREATOR);
data.enforceNoDataAvail();
this.onAuthenticationSucceeded(_arg0, _arg1);
reply.writeNoException();
break;
}
case TRANSACTION_onAuthenticationFailed:
{
this.onAuthenticationFailed();
reply.writeNoException();
break;
}
case TRANSACTION_onLockoutTimed:
{
long _arg0;
_arg0 = data.readLong();
data.enforceNoDataAvail();
this.onLockoutTimed(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_onLockoutPermanent:
{
this.onLockoutPermanent();
reply.writeNoException();
break;
}
case TRANSACTION_onLockoutCleared:
{
this.onLockoutCleared();
reply.writeNoException();
break;
}
case TRANSACTION_onInteractionDetected:
{
this.onInteractionDetected();
reply.writeNoException();
break;
}
case TRANSACTION_onEnrollmentsEnumerated:
{
int[] _arg0;
_arg0 = data.createIntArray();
data.enforceNoDataAvail();
this.onEnrollmentsEnumerated(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_onEnrollmentsRemoved:
{
int[] _arg0;
_arg0 = data.createIntArray();
data.enforceNoDataAvail();
this.onEnrollmentsRemoved(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_onAuthenticatorIdRetrieved:
{
long _arg0;
_arg0 = data.readLong();
data.enforceNoDataAvail();
this.onAuthenticatorIdRetrieved(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_onAuthenticatorIdInvalidated:
{
long _arg0;
_arg0 = data.readLong();
data.enforceNoDataAvail();
this.onAuthenticatorIdInvalidated(_arg0);
reply.writeNoException();
break;
}
case TRANSACTION_onSessionClosed:
{
this.onSessionClosed();
reply.writeNoException();
break;
}
default:
{
return super.onTransact(code, data, reply, flags);
}
}
return true;
}
private static class Proxy implements android.hardware.biometrics.fingerprint.ISessionCallback
{
private android.os.IBinder mRemote;
Proxy(android.os.IBinder remote)
{
mRemote = remote;
}
private int mCachedVersion = -1;
private String mCachedHash = "-1";
@Override public android.os.IBinder asBinder()
{
return mRemote;
}
public java.lang.String getInterfaceDescriptor()
{
return DESCRIPTOR;
}
/** Notifies the framework when a challenge is successfully generated. */
@Override public void onChallengeGenerated(long challenge) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeLong(challenge);
boolean _status = mRemote.transact(Stub.TRANSACTION_onChallengeGenerated, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onChallengeGenerated is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/** Notifies the framework when a challenge has been revoked. */
@Override public void onChallengeRevoked(long challenge) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeLong(challenge);
boolean _status = mRemote.transact(Stub.TRANSACTION_onChallengeRevoked, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onChallengeRevoked is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* This method must only be used to notify the framework during the following operations:
* - ISession#enroll
* - ISession#authenticate
* - ISession#detectInteraction
*
* These messages may be used to provide user guidance multiple times per operation if
* necessary.
*
* @param info See the AcquiredInfo enum.
* @param vendorCode Only valid if info == AcquiredInfo::VENDOR. The vendorCode must be used to
* index into the configuration
* com.android.internal.R.array.fingerprint_acquired_vendor that's installed
* on the vendor partition.
*/
@Override public void onAcquired(byte info, int vendorCode) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeByte(info);
_data.writeInt(vendorCode);
boolean _status = mRemote.transact(Stub.TRANSACTION_onAcquired, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onAcquired is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* This method must only be used to notify the framework during the following operations:
* - ISession#enroll
* - ISession#authenticate
* - ISession#detectInteraction
* - ISession#invalidateAuthenticatorId
* - ISession#resetLockout
*
* These messages may be used to notify the framework or user that a non-recoverable error
* has occurred. The operation is finished, and the HAL can proceed with the next operation
* or return to the idling state.
*
* Note that cancellation (see common::ICancellationSignal) must be followed with an
* Error::CANCELED message.
*
* @param error See the Error enum.
* @param vendorCode Only valid if error == Error::VENDOR. The vendorCode must be used to index
* into the configuration
* com.android.internal.R.fingerprint_error_vendor that's installed on the
* vendor partition.
*/
@Override public void onError(byte error, int vendorCode) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeByte(error);
_data.writeInt(vendorCode);
boolean _status = mRemote.transact(Stub.TRANSACTION_onError, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onError is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* This method must only be used to notify the framework during the ISession#enroll operation.
*
* @param enrollmentId Unique stable identifier for the enrollment that's being added by this
* ISession#enroll invocation.
* @param remaining Remaining number of steps before enrollment is complete.
*/
@Override public void onEnrollmentProgress(int enrollmentId, int remaining) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeInt(enrollmentId);
_data.writeInt(remaining);
boolean _status = mRemote.transact(Stub.TRANSACTION_onEnrollmentProgress, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onEnrollmentProgress is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* This method must only be used to notify the framework during ISession#authenticate.
*
* Used to notify the framework upon successful authentication. Note that the authentication
* lifecycle ends when either 1) a fingerprint is accepted, or 2) an error occurred. The
* authentication lifecycle does NOT end when a fingerprint is rejected.
*
* @param enrollmentId Fingerprint that was accepted.
* @param hat If the sensor is configured as SensorStrength::STRONG, a non-null attestation that
* a fingerprint was accepted. The HardwareAuthToken's "challenge" field must be set
* with the operationId passed in during ISession#authenticate. If the sensor is NOT
* SensorStrength::STRONG, the HardwareAuthToken MUST be null.
*/
@Override public void onAuthenticationSucceeded(int enrollmentId, android.hardware.keymaster.HardwareAuthToken hat) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeInt(enrollmentId);
_data.writeTypedObject(hat, 0);
boolean _status = mRemote.transact(Stub.TRANSACTION_onAuthenticationSucceeded, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onAuthenticationSucceeded is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* This method must only be used to notify the framework during ISession#authenticate.
*
* Used to notify the framework upon rejected attempts. Note that the authentication
* lifecycle ends when either 1) a fingerprint is accepted, or 2) an error occurred.
* The authentication lifecycle does NOT end when a fingerprint is rejected.
*/
@Override public void onAuthenticationFailed() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
boolean _status = mRemote.transact(Stub.TRANSACTION_onAuthenticationFailed, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onAuthenticationFailed is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* This method must only be used to notify the framework during ISession#authenticate.
*
* Authentication is locked out due to too many unsuccessful attempts. This is a rate-limiting
* lockout, and authentication can be restarted after a period of time. See
* ISession#resetLockout.
*
* @param sensorId Sensor for which the user is locked out.
* @param userId User for which the sensor is locked out.
* @param durationMillis Remaining duration of the lockout.
*/
@Override public void onLockoutTimed(long durationMillis) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeLong(durationMillis);
boolean _status = mRemote.transact(Stub.TRANSACTION_onLockoutTimed, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onLockoutTimed is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* This method must only be used to notify the framework during ISession#authenticate.
*
* Authentication is disabled until the user unlocks with their device credential
* (PIN/Pattern/Password). See ISession#resetLockout.
*
* @param sensorId Sensor for which the user is locked out.
* @param userId User for which the sensor is locked out.
*/
@Override public void onLockoutPermanent() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
boolean _status = mRemote.transact(Stub.TRANSACTION_onLockoutPermanent, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onLockoutPermanent is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* Notifies the framework that lockout has been cleared for this (sensorId, userId) pair.
*
* Note that this method can be used to notify the framework during any state.
*
* Lockout can be cleared in the following scenarios:
* 1) A timed lockout has ended (e.g. durationMillis specified in previous #onLockoutTimed
* has expired.
* 2) See ISession#resetLockout.
*
* @param sensorId Sensor for which the user's lockout is cleared.
* @param userId User for the sensor's lockout is cleared.
*/
@Override public void onLockoutCleared() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
boolean _status = mRemote.transact(Stub.TRANSACTION_onLockoutCleared, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onLockoutCleared is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* This method must only be used to notify the framework during
* ISession#detectInteraction
*
* Notifies the framework that user interaction occurred. See ISession#detectInteraction.
*/
@Override public void onInteractionDetected() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
boolean _status = mRemote.transact(Stub.TRANSACTION_onInteractionDetected, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onInteractionDetected is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* This method must only be used to notify the framework during
* ISession#enumerateEnrollments.
*
* Notifies the framework of the current enrollments. See ISession#enumerateEnrollments.
*
* @param enrollmentIds A list of enrollments for the session's (userId, sensorId) pair.
*/
@Override public void onEnrollmentsEnumerated(int[] enrollmentIds) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeIntArray(enrollmentIds);
boolean _status = mRemote.transact(Stub.TRANSACTION_onEnrollmentsEnumerated, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onEnrollmentsEnumerated is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* This method must only be used to notify the framework during
* ISession#removeEnrollments.
*
* Notifies the framework that the specified enrollments are removed.
*
* @param enrollmentIds The enrollments that were removed.
*/
@Override public void onEnrollmentsRemoved(int[] enrollmentIds) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeIntArray(enrollmentIds);
boolean _status = mRemote.transact(Stub.TRANSACTION_onEnrollmentsRemoved, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onEnrollmentsRemoved is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* This method must only be used to notify the framework during
* ISession#getAuthenticatorId.
*
* Notifies the framework with the authenticatorId corresponding to this session's
* (userId, sensorId) pair.
*
* @param authenticatorId See the above documentation.
*/
@Override public void onAuthenticatorIdRetrieved(long authenticatorId) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeLong(authenticatorId);
boolean _status = mRemote.transact(Stub.TRANSACTION_onAuthenticatorIdRetrieved, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onAuthenticatorIdRetrieved is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* This method must only be used to notify the framework during
* ISession#invalidateAuthenticatorId.
*
* See ISession#invalidateAuthenticatorId for more information.
*
* @param newAuthenticatorId The new entropy-encoded random identifier associated with the
* current set of enrollments.
*/
@Override public void onAuthenticatorIdInvalidated(long newAuthenticatorId) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeLong(newAuthenticatorId);
boolean _status = mRemote.transact(Stub.TRANSACTION_onAuthenticatorIdInvalidated, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onAuthenticatorIdInvalidated is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
/**
* This method notifes the client that this session has closed.
* The client must not make any more calls to this session.
*/
@Override public void onSessionClosed() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain(asBinder());
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
boolean _status = mRemote.transact(Stub.TRANSACTION_onSessionClosed, _data, _reply, 0);
if (!_status) {
throw new android.os.RemoteException("Method onSessionClosed is unimplemented.");
}
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
@Override
public int getInterfaceVersion() throws android.os.RemoteException {
if (mCachedVersion == -1) {
android.os.Parcel data = android.os.Parcel.obtain(asBinder());
android.os.Parcel reply = android.os.Parcel.obtain();
try {
data.writeInterfaceToken(DESCRIPTOR);
boolean _status = mRemote.transact(Stub.TRANSACTION_getInterfaceVersion, data, reply, 0);
reply.readException();
mCachedVersion = reply.readInt();
} finally {
reply.recycle();
data.recycle();
}
}
return mCachedVersion;
}
@Override
public synchronized String getInterfaceHash() throws android.os.RemoteException {
if ("-1".equals(mCachedHash)) {
android.os.Parcel data = android.os.Parcel.obtain(asBinder());
android.os.Parcel reply = android.os.Parcel.obtain();
try {
data.writeInterfaceToken(DESCRIPTOR);
boolean _status = mRemote.transact(Stub.TRANSACTION_getInterfaceHash, data, reply, 0);
reply.readException();
mCachedHash = reply.readString();
} finally {
reply.recycle();
data.recycle();
}
}
return mCachedHash;
}
}
static final int TRANSACTION_onChallengeGenerated = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);
static final int TRANSACTION_onChallengeRevoked = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1);
static final int TRANSACTION_onAcquired = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2);
static final int TRANSACTION_onError = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3);
static final int TRANSACTION_onEnrollmentProgress = (android.os.IBinder.FIRST_CALL_TRANSACTION + 4);
static final int TRANSACTION_onAuthenticationSucceeded = (android.os.IBinder.FIRST_CALL_TRANSACTION + 5);
static final int TRANSACTION_onAuthenticationFailed = (android.os.IBinder.FIRST_CALL_TRANSACTION + 6);
static final int TRANSACTION_onLockoutTimed = (android.os.IBinder.FIRST_CALL_TRANSACTION + 7);
static final int TRANSACTION_onLockoutPermanent = (android.os.IBinder.FIRST_CALL_TRANSACTION + 8);
static final int TRANSACTION_onLockoutCleared = (android.os.IBinder.FIRST_CALL_TRANSACTION + 9);
static final int TRANSACTION_onInteractionDetected = (android.os.IBinder.FIRST_CALL_TRANSACTION + 10);
static final int TRANSACTION_onEnrollmentsEnumerated = (android.os.IBinder.FIRST_CALL_TRANSACTION + 11);
static final int TRANSACTION_onEnrollmentsRemoved = (android.os.IBinder.FIRST_CALL_TRANSACTION + 12);
static final int TRANSACTION_onAuthenticatorIdRetrieved = (android.os.IBinder.FIRST_CALL_TRANSACTION + 13);
static final int TRANSACTION_onAuthenticatorIdInvalidated = (android.os.IBinder.FIRST_CALL_TRANSACTION + 14);
static final int TRANSACTION_onSessionClosed = (android.os.IBinder.FIRST_CALL_TRANSACTION + 15);
static final int TRANSACTION_getInterfaceVersion = (android.os.IBinder.FIRST_CALL_TRANSACTION + 16777214);
static final int TRANSACTION_getInterfaceHash = (android.os.IBinder.FIRST_CALL_TRANSACTION + 16777213);
/** @hide */
public int getMaxTransactionId()
{
return 16777214;
}
}
/** @hide */
public static final java.lang.String DESCRIPTOR = "android$hardware$biometrics$fingerprint$ISessionCallback".replace('$', '.');
/** Notifies the framework when a challenge is successfully generated. */
public void onChallengeGenerated(long challenge) throws android.os.RemoteException;
/** Notifies the framework when a challenge has been revoked. */
public void onChallengeRevoked(long challenge) throws android.os.RemoteException;
/**
* This method must only be used to notify the framework during the following operations:
* - ISession#enroll
* - ISession#authenticate
* - ISession#detectInteraction
*
* These messages may be used to provide user guidance multiple times per operation if
* necessary.
*
* @param info See the AcquiredInfo enum.
* @param vendorCode Only valid if info == AcquiredInfo::VENDOR. The vendorCode must be used to
* index into the configuration
* com.android.internal.R.array.fingerprint_acquired_vendor that's installed
* on the vendor partition.
*/
public void onAcquired(byte info, int vendorCode) throws android.os.RemoteException;
/**
* This method must only be used to notify the framework during the following operations:
* - ISession#enroll
* - ISession#authenticate
* - ISession#detectInteraction
* - ISession#invalidateAuthenticatorId
* - ISession#resetLockout
*
* These messages may be used to notify the framework or user that a non-recoverable error
* has occurred. The operation is finished, and the HAL can proceed with the next operation
* or return to the idling state.
*
* Note that cancellation (see common::ICancellationSignal) must be followed with an
* Error::CANCELED message.
*
* @param error See the Error enum.
* @param vendorCode Only valid if error == Error::VENDOR. The vendorCode must be used to index
* into the configuration
* com.android.internal.R.fingerprint_error_vendor that's installed on the
* vendor partition.
*/
public void onError(byte error, int vendorCode) throws android.os.RemoteException;
/**
* This method must only be used to notify the framework during the ISession#enroll operation.
*
* @param enrollmentId Unique stable identifier for the enrollment that's being added by this
* ISession#enroll invocation.
* @param remaining Remaining number of steps before enrollment is complete.
*/
public void onEnrollmentProgress(int enrollmentId, int remaining) throws android.os.RemoteException;
/**
* This method must only be used to notify the framework during ISession#authenticate.
*
* Used to notify the framework upon successful authentication. Note that the authentication
* lifecycle ends when either 1) a fingerprint is accepted, or 2) an error occurred. The
* authentication lifecycle does NOT end when a fingerprint is rejected.
*
* @param enrollmentId Fingerprint that was accepted.
* @param hat If the sensor is configured as SensorStrength::STRONG, a non-null attestation that
* a fingerprint was accepted. The HardwareAuthToken's "challenge" field must be set
* with the operationId passed in during ISession#authenticate. If the sensor is NOT
* SensorStrength::STRONG, the HardwareAuthToken MUST be null.
*/
public void onAuthenticationSucceeded(int enrollmentId, android.hardware.keymaster.HardwareAuthToken hat) throws android.os.RemoteException;
/**
* This method must only be used to notify the framework during ISession#authenticate.
*
* Used to notify the framework upon rejected attempts. Note that the authentication
* lifecycle ends when either 1) a fingerprint is accepted, or 2) an error occurred.
* The authentication lifecycle does NOT end when a fingerprint is rejected.
*/
public void onAuthenticationFailed() throws android.os.RemoteException;
/**
* This method must only be used to notify the framework during ISession#authenticate.
*
* Authentication is locked out due to too many unsuccessful attempts. This is a rate-limiting
* lockout, and authentication can be restarted after a period of time. See
* ISession#resetLockout.
*
* @param sensorId Sensor for which the user is locked out.
* @param userId User for which the sensor is locked out.
* @param durationMillis Remaining duration of the lockout.
*/
public void onLockoutTimed(long durationMillis) throws android.os.RemoteException;
/**
* This method must only be used to notify the framework during ISession#authenticate.
*
* Authentication is disabled until the user unlocks with their device credential
* (PIN/Pattern/Password). See ISession#resetLockout.
*
* @param sensorId Sensor for which the user is locked out.
* @param userId User for which the sensor is locked out.
*/
public void onLockoutPermanent() throws android.os.RemoteException;
/**
* Notifies the framework that lockout has been cleared for this (sensorId, userId) pair.
*
* Note that this method can be used to notify the framework during any state.
*
* Lockout can be cleared in the following scenarios:
* 1) A timed lockout has ended (e.g. durationMillis specified in previous #onLockoutTimed
* has expired.
* 2) See ISession#resetLockout.
*
* @param sensorId Sensor for which the user's lockout is cleared.
* @param userId User for the sensor's lockout is cleared.
*/
public void onLockoutCleared() throws android.os.RemoteException;
/**
* This method must only be used to notify the framework during
* ISession#detectInteraction
*
* Notifies the framework that user interaction occurred. See ISession#detectInteraction.
*/
public void onInteractionDetected() throws android.os.RemoteException;
/**
* This method must only be used to notify the framework during
* ISession#enumerateEnrollments.
*
* Notifies the framework of the current enrollments. See ISession#enumerateEnrollments.
*
* @param enrollmentIds A list of enrollments for the session's (userId, sensorId) pair.
*/
public void onEnrollmentsEnumerated(int[] enrollmentIds) throws android.os.RemoteException;
/**
* This method must only be used to notify the framework during
* ISession#removeEnrollments.
*
* Notifies the framework that the specified enrollments are removed.
*
* @param enrollmentIds The enrollments that were removed.
*/
public void onEnrollmentsRemoved(int[] enrollmentIds) throws android.os.RemoteException;
/**
* This method must only be used to notify the framework during
* ISession#getAuthenticatorId.
*
* Notifies the framework with the authenticatorId corresponding to this session's
* (userId, sensorId) pair.
*
* @param authenticatorId See the above documentation.
*/
public void onAuthenticatorIdRetrieved(long authenticatorId) throws android.os.RemoteException;
/**
* This method must only be used to notify the framework during
* ISession#invalidateAuthenticatorId.
*
* See ISession#invalidateAuthenticatorId for more information.
*
* @param newAuthenticatorId The new entropy-encoded random identifier associated with the
* current set of enrollments.
*/
public void onAuthenticatorIdInvalidated(long newAuthenticatorId) throws android.os.RemoteException;
/**
* This method notifes the client that this session has closed.
* The client must not make any more calls to this session.
*/
public void onSessionClosed() throws android.os.RemoteException;
public int getInterfaceVersion() throws android.os.RemoteException;
public String getInterfaceHash() throws android.os.RemoteException;
}