RecoverableSecurityException


public final class RecoverableSecurityException
extends SecurityException implements Parcelable

java.lang.Object
   ↳ java.lang.Throwable
     ↳ java.lang.Exception
       ↳ java.lang.RuntimeException
         ↳ java.lang.SecurityException
           ↳ android.app.RecoverableSecurityException


Specialization of SecurityException that contains additional information about how to involve the end user to recover from the exception.

This exception is only appropriate where there is a concrete action the user can take to recover and make forward progress, such as confirming or entering authentication credentials, or granting access.

If the receiving app is actively involved with the user, it should present the contained recovery details to help the user make forward progress.

Note: legacy code that receives this exception may treat it as a general SecurityException, and thus there is no guarantee that the messages contained will be shown to the end user.

Summary

Inherited constants

int CONTENTS_FILE_DESCRIPTOR

Descriptor bit used with describeContents(): indicates that the Parcelable object's flattened representation includes a file descriptor.

int PARCELABLE_WRITE_RETURN_VALUE

Flag for use with writeToParcel(Parcel, int): the object being written is a return value, that is the result of a function such as "Parcelable someFunction()", "void someFunction(out Parcelable)", or "void someFunction(inout Parcelable)".

Fields

public static final Creator<RecoverableSecurityException> CREATOR

Public constructors

RecoverableSecurityException(Throwable cause, CharSequence userMessage, RemoteAction userAction)

Create an instance ready to be thrown.

Public methods

int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

RemoteAction getUserAction()

Return primary action that will initiate the recovery.

CharSequence getUserMessage()

Return short message describing the issue for end user audiences, which may be shown in a notification or dialog.

void writeToParcel(Parcel dest, int flags)

Flatten this object in to a Parcel.

Inherited methods

final void addSuppressed(Throwable exception)

Appends the specified exception to the exceptions that were suppressed in order to deliver this exception.

Throwable fillInStackTrace()

Fills in the execution stack trace.

Throwable getCause()

Returns the cause of this throwable or null if the cause is nonexistent or unknown.

String getLocalizedMessage()

Creates a localized description of this throwable.

String getMessage()

Returns the detail message string of this throwable.

StackTraceElement[] getStackTrace()

Provides programmatic access to the stack trace information printed by printStackTrace().

final Throwable[] getSuppressed()

Returns an array containing all of the exceptions that were suppressed, typically by the try-with-resources statement, in order to deliver this exception.

Throwable initCause(Throwable cause)

Initializes the cause of this throwable to the specified value.

void printStackTrace()

Prints this throwable and its backtrace to the standard error stream.

void printStackTrace(PrintWriter s)

Prints this throwable and its backtrace to the specified print writer.

void printStackTrace(PrintStream s)

Prints this throwable and its backtrace to the specified print stream.

void setStackTrace(StackTraceElement[] stackTrace)

Sets the stack trace elements that will be returned by getStackTrace() and printed by printStackTrace() and related methods.

String toString()

Returns a short description of this throwable.

Object clone()

Creates and returns a copy of this object.

boolean equals(Object obj)

Indicates whether some other object is "equal to" this one.

void finalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

final Class<?> getClass()

Returns the runtime class of this Object.

int hashCode()

Returns a hash code value for the object.

final void notify()

Wakes up a single thread that is waiting on this object's monitor.

final void notifyAll()

Wakes up all threads that are waiting on this object's monitor.

String toString()

Returns a string representation of the object.

final void wait(long timeoutMillis, int nanos)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait(long timeoutMillis)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait()

Causes the current thread to wait until it is awakened, typically by being notified or interrupted.

abstract int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

abstract void writeToParcel(Parcel dest, int flags)

Flatten this object in to a Parcel.

Fields

CREATOR

Added in API level 29
public static final Creator<RecoverableSecurityException> CREATOR

Public constructors

RecoverableSecurityException

Added in API level 29
public RecoverableSecurityException (Throwable cause, 
                CharSequence userMessage, 
                RemoteAction userAction)

Create an instance ready to be thrown.

Parameters
cause Throwable: original cause with details designed for engineering audiences. This value cannot be null.

userMessage CharSequence: short message describing the issue for end user audiences, which may be shown in a notification or dialog. This should be localized and less than 64 characters. For example: PIN required to access Document.pdf This value cannot be null.

userAction RemoteAction: primary action that will initiate the recovery. The title should be localized and less than 24 characters. For example: Enter PIN. This action must launch an activity that is expected to set Activity.setResult(int) before finishing to communicate the final status of the recovery. For example, apps that observe Activity.RESULT_OK may choose to immediately retry their operation. This value cannot be null.

Public methods

describeContents

Added in API level 29
public int describeContents ()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of writeToParcel(android.os.Parcel, int), the return value of this method must include the CONTENTS_FILE_DESCRIPTOR bit.

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or CONTENTS_FILE_DESCRIPTOR

getUserAction

Added in API level 29
public RemoteAction getUserAction ()

Return primary action that will initiate the recovery.

Returns
RemoteAction This value cannot be null.

getUserMessage

Added in API level 29
public CharSequence getUserMessage ()

Return short message describing the issue for end user audiences, which may be shown in a notification or dialog.

Returns
CharSequence This value cannot be null.

writeToParcel

Added in API level 29
public void writeToParcel (Parcel dest, 
                int flags)

Flatten this object in to a Parcel.

Parameters
dest Parcel: The Parcel in which the object should be written. This value cannot be null.

flags int: Additional flags about how the object should be written. May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES