ActivityResultContract

public abstract class ActivityResultContract<I, O>

Known direct subclasses
ActivityResultContracts.CaptureVideo

An ActivityResultContract to take a video saving it into the provided content-Uri.

ActivityResultContracts.CreateDocument

An ActivityResultContract to prompt the user to select a path for creating a new document, returning the {@code content:}Uri of the item that was created.

ActivityResultContracts.GetContent

An ActivityResultContract to prompt the user to pick a piece of content, receiving a {@code content://}Uri for that content that allows you to use openInputStream to access the raw data.

ActivityResultContracts.GetMultipleContents

An ActivityResultContract to prompt the user to pick one or more a pieces of content, receiving a {@code content://}Uri for each piece of content that allows you to use openInputStream to access the raw data.

ActivityResultContracts.OpenDocumentTree

An ActivityResultContract to prompt the user to select a directory, returning the user selection as a Uri.

ActivityResultContracts.OpenDocument

An ActivityResultContract to prompt the user to open a document, receiving its contents as a {@code file:/http:/content:}Uri.

ActivityResultContracts.OpenMultipleDocuments

An ActivityResultContract to prompt the user to open (possibly multiple) documents, receiving their contents as {@code file:/http:/content:}Uris.

ActivityResultContracts.PickContact

An ActivityResultContract to request the user to pick a contact from the contacts app.

ActivityResultContracts.RequestMultiplePermissions

An ActivityResultContract to request permissions

ActivityResultContracts.RequestPermission

An ActivityResultContract to request a permission

ActivityResultContracts.StartActivityForResult

An ActivityResultContract that doesn't do any type conversion, taking raw Intent as an input and ActivityResult as an output.

ActivityResultContracts.StartIntentSenderForResult

An ActivityResultContract that calls startIntentSender.

ActivityResultContracts.TakePicturePreview

An ActivityResultContract to take small a picture preview, returning it as a Bitmap.

ActivityResultContracts.TakePicture

An ActivityResultContract to take a picture saving it into the provided content-Uri.

ActivityResultContracts.TakeVideo

This class is deprecated.

The thumbnail bitmap is rarely returned and is not a good signal to determine whether the video was actually successfully captured.

WatchFaceEditorContract

An ActivityResultContract for invoking a watch face editor.


A contract specifying that an activity can be called with an input of type I and produce an output of type O Makes calling an activity for result type-safe.

Parameters
<I>

input type

<O>

output type

Summary

Nested types

ActivityResultContract.SynchronousResult

The wrapper for a result provided in getSynchronousResult

Public methods

abstract @NonNull Intent
createIntent(@NonNull Context context, @NonNull I input)

Create an intent that can be used for startActivityForResult

@Nullable ActivityResultContract.SynchronousResult<@NonNull O>

An optional method you can implement that can be used to potentially provide a result in lieu of starting an activity.

abstract @NonNull O
parseResult(@NonNull int resultCode, @Nullable Intent intent)

Convert result obtained from onActivityResult to O

Public methods

createIntent

@NonNull
public abstract Intent createIntent(@NonNull Context context, @NonNull I input)

Create an intent that can be used for startActivityForResult

getSynchronousResult

@Nullable
@NonNull
public ActivityResultContract.SynchronousResult<@NonNull O> getSynchronousResult(@NonNull Context context, @NonNull I input)

An optional method you can implement that can be used to potentially provide a result in lieu of starting an activity.

Returns
ActivityResultContract.SynchronousResult<@NonNull O>

the result wrapped in a SynchronousResult or {@code null} if the call should proceed to start an activity.

parseResult

@NonNull
public abstract O parseResult(@NonNull int resultCode, @Nullable Intent intent)

Convert result obtained from onActivityResult to O