Language

UnsafeIntentLaunchViolation Class

Definition

Violation raised when your app launches an Intent which originated from outside your app.

[Android.Runtime.Register("android/os/strictmode/UnsafeIntentLaunchViolation", ApiSince=31, DoNotGenerateAcw=true)]
public sealed class UnsafeIntentLaunchViolation : Android.OS.Strictmode.Violation
[<Android.Runtime.Register("android/os/strictmode/UnsafeIntentLaunchViolation", ApiSince=31, DoNotGenerateAcw=true)>]
type UnsafeIntentLaunchViolation = class
    inherit Violation
Inheritance
UnsafeIntentLaunchViolation
Attributes

Remarks

Violation raised when your app launches an Intent which originated from outside your app.

Violations may indicate security vulnerabilities in the design of your app, where a malicious app could trick you into granting Uri permissions or launching unexported components. Here are some typical design patterns that can be used to safely resolve these violations: <ul> <li>The ideal approach is to migrate to using a PendingIntent, which ensures that your launch is performed using the identity of the original creator, completely avoiding the security issues described above. <li>If using a PendingIntent isn't feasible, an alternative approach is to create a brand new Intent and carefully copy only specific values from the original Intent after careful validation. </ul>

Note that this <em>may</em> detect false-positives if your app sends itself an Intent which is first routed through the OS, such as using Intent#createChooser. In these cases, careful inspection is required to determine if the return point into your app is appropriately protected with a signature permission or marked as unexported. If the return point is not protected, your app is likely vulnerable to malicious apps.

Java documentation for android.os.strictmode.UnsafeIntentLaunchViolation.

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Constructors

Name Description
UnsafeIntentLaunchViolation(Intent)

Fields

Name Description
is_generated

Indicates whether this throwable was generated by the binding.

(Inherited from Throwable)

Properties

Name Description
Cause

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

(Inherited from Throwable)
Class

Gets the runtime class of this throwable.

(Inherited from Throwable)
Handle

The handle to the underlying Android instance.

(Inherited from Throwable)
Intent

Return the Intent which caused this violation to be raised.

JavaStackTrace (Inherited from JavaException)
JniIdentityHashCode

Gets the identity hash code assigned to this Java peer by the interop runtime.

(Inherited from Throwable)
JniManagedPeerState (Inherited from JavaException)
JniPeerMembers
LocalizedMessage

Creates a localized description of this throwable.

(Inherited from Throwable)
Message

Returns the detail message string of this throwable.

(Inherited from Throwable)
PeerReference

Gets the JNI object reference for this Java peer.

(Inherited from Throwable)
StackTrace

Gets a string representation of the stack trace for this throwable.

(Inherited from Throwable)
ThresholdClass (Inherited from Violation)
ThresholdType (Inherited from Violation)

Methods

Name Description
AddSuppressed(Throwable)

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

(Inherited from Throwable)
Construct(JniObjectReference, JniObjectReferenceOptions) (Inherited from JavaException)
Dispose()

Releases the resources held by this Java peer.

(Inherited from Throwable)
Dispose(Boolean)

Releases the resources held by this Java peer.

(Inherited from Throwable)
DisposeUnlessReferenced() (Inherited from JavaException)
Equals(Object) (Inherited from JavaException)
FillInStackTrace()

Fills in the execution stack trace.

(Inherited from Throwable)
GetHashCode()

Returns a hash code value for the object.

(Inherited from JavaException)
GetStackTrace()

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

(Inherited from 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.

(Inherited from Throwable)
InitCause(Throwable)

Initializes the cause of this throwable to the specified value.

(Inherited from Throwable)
PrintStackTrace()

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

(Inherited from Throwable)
PrintStackTrace(PrintStream)

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

(Inherited from Throwable)
PrintStackTrace(PrintWriter)

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

(Inherited from Throwable)
SetHandle(IntPtr, JniHandleOwnership)

Sets the Handle property.

(Inherited from Throwable)
SetJavaStackTrace(JniObjectReference) (Inherited from JavaException)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions) (Inherited from JavaException)
SetStackTrace(StackTraceElement[])

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

(Inherited from Throwable)
ToString()

Converts this value to a string.

(Inherited from Throwable)
UnregisterFromRuntime()

Unregisters this Java peer from the interop runtime.

(Inherited from Throwable)

Explicit Interface Implementations

Name Description
IJavaPeerable.Disposed() (Inherited from JavaException)
IJavaPeerable.Finalized() (Inherited from JavaException)
IJavaPeerable.JniObjectReferenceControlBlock (Inherited from JavaException)
IJavaPeerable.SetJniIdentityHashCode(Int32) (Inherited from JavaException)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) (Inherited from JavaException)
IJavaPeerable.SetPeerReference(JniObjectReference) (Inherited from JavaException)

Extension Methods

Name Description
GetJniTypeName(IJavaPeerable)

Gets the JNI name of the type of the instance self.

JavaAs<TResult>(IJavaPeerable)

Try to coerce self to type TResult, checking that the coercion is valid on the Java side.

JavaCast<TResult>(IJavaObject)

Performs an Android runtime-checked type conversion.

JavaCast<TResult>(IJavaObject)
TryJavaCast<TResult>(IJavaPeerable, TResult)

Try to coerce self to type TResult, checking that the coercion is valid on the Java side.

Applies to