Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Constants](https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#constants) \| [Methods](https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#inhmethods)

# ContentCaptureSession

*** ** * ** ***


`
public


abstract
class
ContentCaptureSession
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


implements

https://developer.android.com/reference/java/lang/AutoCloseable


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.view.contentcapture.ContentCaptureSession |

<br />

*** ** * ** ***

Session used when notifying the Android system about events associated with views.

## Summary

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#VERSION_1` Content Capture Version 1. |
| `int` | `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#VERSION_2` Content Capture Version 2. |

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#close()() ` Closes this resource, relinquishing any underlying resources. |
| ` final https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#createContentCaptureSession(android.view.contentcapture.ContentCaptureContext)(https://developer.android.com/reference/android/view/contentcapture/ContentCaptureContext context) ` Creates a new `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession`. |
| ` final void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#destroy()() ` Destroys this session, flushing out all pending notifications to the service. |
| ` void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#flush()() ` Flushes an internal buffer of UI events and signals System Intelligence (SI) that a semantically meaningful state has been reached. |
| ` final https://developer.android.com/reference/android/view/contentcapture/ContentCaptureContext` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureContext()() ` Gets the `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureContext` associated with the session. |
| ` final https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSessionId` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureSessionId()() ` Gets the id used to identify this session. |
| ` abstract int` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()() ` Gets the Content Capture version enabled for this session. |
| ` https://developer.android.com/reference/android/view/autofill/AutofillId` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#newAutofillId(android.view.autofill.AutofillId,%20long)(https://developer.android.com/reference/android/view/autofill/AutofillId hostId, long virtualChildId) ` Creates a new `https://developer.android.com/reference/android/view/autofill/AutofillId` for a virtual child, so it can be used to uniquely identify the children in the session. |
| ` final https://developer.android.com/reference/android/view/ViewStructure` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#newViewStructure(android.view.View)(https://developer.android.com/reference/android/view/View view) ` Creates a `https://developer.android.com/reference/android/view/ViewStructure` for a "standard" view. |
| ` final https://developer.android.com/reference/android/view/ViewStructure` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#newVirtualViewStructure(android.view.autofill.AutofillId,%20long)(https://developer.android.com/reference/android/view/autofill/AutofillId parentId, long virtualId) ` Creates a `https://developer.android.com/reference/android/view/ViewStructure` for a "virtual" view, so it can be passed to `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewAppeared(android.view.ViewStructure)` by the view managing the virtual view hierarchy. |
| ` void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyContentInteractionEvent(android.view.autofill.AutofillId)(https://developer.android.com/reference/android/view/autofill/AutofillId autofillId) ` Notifies the Intelligence Service that a view has been interacted. |
| ` abstract void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyNodeAppearedOrChanged(android.view.autofill.AutofillId,%20android.view.contentcapture.ContentCaptureNodeProperties)(https://developer.android.com/reference/android/view/autofill/AutofillId id, https://developer.android.com/reference/android/view/contentcapture/ContentCaptureNodeProperties properties) ` Creates a new node or updates an existing one according to the changes in properties. |
| ` abstract void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyNodeDisappeared(android.view.autofill.AutofillId)(https://developer.android.com/reference/android/view/autofill/AutofillId id) ` Removes a node from the active content capture hierarchy. |
| ` final void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifySessionPaused()() ` Notifies the Content Capture Service that a session has paused. |
| ` final void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifySessionResumed()() ` Notifies the Content Capture Service that a session has resumed. |
| ` final void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewAppeared(android.view.ViewStructure)(https://developer.android.com/reference/android/view/ViewStructure node) ` Notifies the Content Capture Service that a node has been added to the view structure. |
| ` final void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewDisappeared(android.view.autofill.AutofillId)(https://developer.android.com/reference/android/view/autofill/AutofillId id) ` Notifies the Content Capture Service that a node has been removed from the view structure. |
| ` final void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewInsetsChanged(android.graphics.Insets)(https://developer.android.com/reference/android/graphics/Insets viewInsets) ` Notifies the Intelligence Service that the insets of a view have changed. |
| ` final void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewTextChanged(android.view.autofill.AutofillId,%20java.lang.CharSequence)(https://developer.android.com/reference/android/view/autofill/AutofillId id, https://developer.android.com/reference/java/lang/CharSequence text) ` Notifies the Intelligence Service that the value of a text node has been changed. |
| ` final void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewsAppeared(java.util.List<android.view.ViewStructure>)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/view/ViewStructure> appearedNodes) ` Notifies the Content Capture Service that a list of nodes has appeared in the view structure. |
| ` final void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewsDisappeared(android.view.autofill.AutofillId,%20long[])(https://developer.android.com/reference/android/view/autofill/AutofillId hostId, long[] virtualIds) ` Notifies the Content Capture Service that many nodes has been removed from a virtual view structure. |
| ` final void` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#setContentCaptureContext(android.view.contentcapture.ContentCaptureContext)(https://developer.android.com/reference/android/view/contentcapture/ContentCaptureContext context) ` Sets the `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureContext` associated with the session. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#toString()() ` Returns a string representation of the object. |

### Inherited methods

From class `

https://developer.android.com/reference/java/lang/Object

` `


https://developer.android.com/reference/java/lang/Object` `
https://developer.android.com/reference/java/lang/Object#clone()()
`

Creates and returns a copy of this object.


`


boolean` `
https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj)
`

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


`


void` `
https://developer.android.com/reference/java/lang/Object#finalize()()
`

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


`


final

https://developer.android.com/reference/java/lang/Class<?>` `
https://developer.android.com/reference/java/lang/Object#getClass()()
`

Returns the runtime class of this `Object`.


`


int` `
https://developer.android.com/reference/java/lang/Object#hashCode()()
`

Returns a hash code value for the object.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#notify()()
`

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


`


final

void` `
https://developer.android.com/reference/java/lang/Object#notifyAll()()
`

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


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/java/lang/Object#toString()()
`

Returns a string representation of the object.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(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` `
https://developer.android.com/reference/java/lang/Object#wait(long)(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` `
https://developer.android.com/reference/java/lang/Object#wait()()
`

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


From interface `

https://developer.android.com/reference/java/lang/AutoCloseable

` `
abstract


void` `
https://developer.android.com/reference/java/lang/AutoCloseable#close()()
`

Closes this resource, relinquishing any underlying resources.


## Constants

### VERSION_1

Added in [version 37.2](https://developer.android.com/topic/libraries/support-library/revisions)

```
public static final int VERSION_1
```

Content Capture Version 1.

The first Content Capture version is an information rich, event based system that
attempts to transfer the current view hierarchy from the application process to a system
intelligence service through periodic event dumps, e.g. `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#flush()`. However, this
system can also be resource heavy due to the large number of events it generates.

When this version is returned by `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`, developers should
use Version 1 APIs to notify the system of view hierarchy changes. Calling Version 2 APIs
when the session is configured for Version 1 will result in no-ops.

A list of functions that belong explicitly to Content Capture Version 1:

- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewAppeared(android.view.ViewStructure)`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewDisappeared(android.view.autofill.AutofillId)`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewsAppeared(java.util.List<android.view.ViewStructure>)`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewsDisappeared(android.view.autofill.AutofillId,%20long[])`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewTextChanged(android.view.autofill.AutofillId,%20java.lang.CharSequence)`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#flush()`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#newViewStructure(android.view.View)`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#newVirtualViewStructure(android.view.autofill.AutofillId,%20long)`

<br />

<br />

**See also:**

- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#VERSION_2`

Constant Value:

1
(0x00000001)


### VERSION_2

Added in [version 37.2](https://developer.android.com/topic/libraries/support-library/revisions)

```
public static final int VERSION_2
```

Content Capture Version 2.

The second and newer Content Capture takes a more focused and leaner approach to passing
the view hierarchy from the application to a system intelligence service. The required
information is mostly limited to text on screen and bounding boxes of these text nodes.
This version of Content Capture is also significantly more efficient at resource usage
and recommended to be the default one for various system intelligence services to use.

When this version is returned by `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`, developers should
use Version 2 APIs to report node lifecycle and property updates. Calling Version 1 APIs
when the session is configured for Version 2 will result in no-ops.

A list of functions that belong explicitly to Content Capture Version 2:

- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyNodeAppearedOrChanged(android.view.autofill.AutofillId,%20android.view.contentcapture.ContentCaptureNodeProperties)`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyNodeDisappeared(android.view.autofill.AutofillId)`

<br />

<br />

**See also:**

- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#VERSION_1`

Constant Value:

2
(0x00000002)


## Public methods

### close

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void close ()
```

Closes this resource, relinquishing any underlying resources.
This method is invoked automatically on objects managed by the
`try`-with-resources statement.

<br />

### createContentCaptureSession

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final ContentCaptureSession createContentCaptureSession (ContentCaptureContext context)
```

Creates a new `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession`.

See `https://developer.android.com/reference/android/view/View#setContentCaptureSession(android.view.contentcapture.ContentCaptureSession)` for more info.

<br />

| Parameters ||
|---|---|
| `context` | `ContentCaptureContext`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession` | This value cannot be `null`. <br /> |

### destroy

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final void destroy ()
```

Destroys this session, flushing out all pending notifications to the service.

Once destroyed, any new notification will be dropped.

<br />

### flush

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void flush ()
```

Flushes an internal buffer of UI events and signals System Intelligence (SI) that a
semantically meaningful state has been reached. SI uses this signal to potentially
rebuild the view hierarchy and understand the current state of the UI.

UI events are often batched together for performance reasons. A semantic batch
represents a series of events that, when applied sequentially, result in a
meaningful and complete UI state.

It is crucial to call `flush()` after completing a semantic batch to ensure
SI can accurately reconstruct the view hierarchy.

**Premature Flushing:** Calling `flush()` within a semantic batch may
lead to SI failing to rebuild the view hierarchy correctly. This could manifest as
incorrect ordering of sibling nodes.

**Delayed Flushing:** While not immediately flushing after a semantic batch is
generally safe, it's recommended to do so as soon as possible. In the worst-case
scenario where a `flush()` is never called, SI will attempt to process the
events after a short delay based on view appearance and disappearance events.

Note; This function belongs to Content Capture Version 1.

<br />

<br />

**See also:**

- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`

### getContentCaptureContext

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final ContentCaptureContext getContentCaptureContext ()
```

Gets the `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureContext` associated with the session.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureContext` | context set on constructor or by `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#setContentCaptureContext(android.view.contentcapture.ContentCaptureContext)`, or `null` if never explicitly set. <br /> |

### getContentCaptureSessionId

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final ContentCaptureSessionId getContentCaptureSessionId ()
```

Gets the id used to identify this session.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSessionId` | This value cannot be `null`. <br /> |

### getContentCaptureVersion

Added in [version 37.2](https://developer.android.com/topic/libraries/support-library/revisions)

```
public abstract int getContentCaptureVersion ()
```

Gets the Content Capture version enabled for this session.

ContentCaptureSession offers two versions: `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#VERSION_1` (legacy event-based
capture using `https://developer.android.com/reference/android/view/ViewStructure`) and `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#VERSION_2` (leaner, buffer-backed capture
focused on text and bounding boxes).

The returned version is decided by the system intelligence service that coordinates
this ContentCaptureSession.

<br />

<br />

| Returns ||
|---|---|
| `int` | the enabled version, either `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#VERSION_1` or `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#VERSION_2`. Calls to Version 1 methods become no-ops if the returned version is not `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#VERSION_1`, and calls to Version 2 methods become no-ops if the returned version is not `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#VERSION_2`. Value is one of the following: - `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#VERSION_1` - `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#VERSION_2` |

**See also:**

- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#VERSION_1`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#VERSION_2`

### newAutofillId

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public AutofillId newAutofillId (AutofillId hostId, 
                long virtualChildId)
```

Creates a new `https://developer.android.com/reference/android/view/autofill/AutofillId` for a virtual child, so it can be used to uniquely identify
the children in the session.

<br />

| Parameters ||
|---|---|
| `hostId` | `AutofillId`: id of the non-virtual view hosting the virtual view hierarchy (it can be obtained by calling `https://developer.android.com/reference/android/view/ViewStructure#getAutofillId()`). This value cannot be `null`. <br /> |
| `virtualChildId` | `long`: id of the virtual child, relative to the parent. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/view/autofill/AutofillId` | if for the virtual child. This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the `parentId` is a virtual child id. |

### newViewStructure

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final ViewStructure newViewStructure (View view)
```

Creates a `https://developer.android.com/reference/android/view/ViewStructure` for a "standard" view.

This method should be called after a visible view is laid out; the view then must populate
the structure and pass it to `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewAppeared(android.view.ViewStructure)`.

**Note:** views that manage a virtual structure under this view must populate just the
node representing this view and return right away, then asynchronously report (not
necessarily in the UI thread) when the children nodes appear, disappear or have their text
changed by calling `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewAppeared(android.view.ViewStructure)`,
`https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewDisappeared(android.view.autofill.AutofillId)`, and
`https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewTextChanged(android.view.autofill.AutofillId,%20java.lang.CharSequence)` respectively.
The structure for the a child must be created using
`https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#newVirtualViewStructure(android.view.autofill.AutofillId,%20long)`, and the
`autofillId` for a child can be obtained either through
`childStructure.getAutofillId()` or
`https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#newAutofillId(android.view.autofill.AutofillId,%20long)`.

When the virtual view hierarchy represents a web page, you should also:

- Call `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureManager#getContentCaptureConditions()` to infer content capture events should be generate for that URL.
- Create a new `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession` child for every HTML element that renders a new URL (like an `IFRAME`) and use that session to notify events from that subtree.

**Note:** the following methods of the `structure` will be ignored:

- `https://developer.android.com/reference/android/view/ViewStructure#setChildCount(int)`
- `https://developer.android.com/reference/android/view/ViewStructure#addChildCount(int)`
- `https://developer.android.com/reference/android/view/ViewStructure#getChildCount()`
- `https://developer.android.com/reference/android/view/ViewStructure#newChild(int)`
- `https://developer.android.com/reference/android/view/ViewStructure#asyncNewChild(int)`
- `https://developer.android.com/reference/android/view/ViewStructure#asyncCommit()`
- `https://developer.android.com/reference/android/view/ViewStructure#setWebDomain(java.lang.String)`
- `https://developer.android.com/reference/android/view/ViewStructure#newHtmlInfoBuilder(java.lang.String)`
- `https://developer.android.com/reference/android/view/ViewStructure#setHtmlInfo(android.view.ViewStructure.HtmlInfo)`
- `https://developer.android.com/reference/android/view/ViewStructure#setDataIsSensitive(boolean)`
- `https://developer.android.com/reference/android/view/ViewStructure#setAlpha(float)`
- `https://developer.android.com/reference/android/view/ViewStructure#setElevation(float)`
- `https://developer.android.com/reference/android/view/ViewStructure#setTransformation(android.graphics.Matrix)`

Note: This function belongs to Content Capture Version 1.

<br />

<br />

| Parameters ||
|---|---|
| `view` | `View`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/view/ViewStructure` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`

### newVirtualViewStructure

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final ViewStructure newVirtualViewStructure (AutofillId parentId, 
                long virtualId)
```

Creates a `https://developer.android.com/reference/android/view/ViewStructure` for a "virtual" view, so it can be passed to
`https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewAppeared(android.view.ViewStructure)` by the view managing the virtual view hierarchy.

Note: This function belongs to Content Capture Version 1.

<br />

<br />

| Parameters ||
|---|---|
| `parentId` | `AutofillId`: id of the virtual view parent (it can be obtained by calling `https://developer.android.com/reference/android/view/ViewStructure#getAutofillId()` on the parent). This value cannot be `null`. <br /> |
| `virtualId` | `long`: id of the virtual child, relative to the parent. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/view/ViewStructure` | a new `https://developer.android.com/reference/android/view/ViewStructure` that can be used for Content Capture purposes. This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`

### notifyContentInteractionEvent

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void notifyContentInteractionEvent (AutofillId autofillId)
```

Notifies the Intelligence Service that a view has been interacted.

The view must have appeared before sending the interaction event.

<br />

| Parameters ||
|---|---|
| `autofillId` | `AutofillId`: id of the node. This value cannot be `null`. <br /> |

### notifyNodeAppearedOrChanged

Added in [version 37.2](https://developer.android.com/topic/libraries/support-library/revisions)

```
public abstract void notifyNodeAppearedOrChanged (AutofillId id, 
                ContentCaptureNodeProperties properties)
```

Creates a new node or updates an existing one according to the changes in properties.

This is the primary method to construct and report the UI hierarchy in Content Capture
Version 2. It unifies the reporting of both standard `https://developer.android.com/reference/android/view/View` and
virtual views (e.g., inside a Webview) into a single, cohesive API. Call this method when
a node is attached, laid out, and ready to be drawn in the active UI hierarchy, or when
its properties (like text or bounds) change.

For standard views, the `id` can be obtained via `https://developer.android.com/reference/android/view/View#getAutofillId()`.
For virtual views, the `id` must be created using
`https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#newAutofillId(android.view.autofill.AutofillId,%20long)`.

To minimize memory allocations, applications should reuse a single
`https://developer.android.com/reference/android/view/contentcapture/ContentCaptureNodeProperties` instance, calling
`https://developer.android.com/reference/android/view/contentcapture/ContentCaptureNodeProperties#clear()` before populating it for a new node.

If the node already exists, only the properties explicitly set in the
`https://developer.android.com/reference/android/view/contentcapture/ContentCaptureNodeProperties` payload will be updated. The parent-child relationship
is modified based on the parent ID configuration:

- **Setting parent ID to `null`:** Guarantees that this node is treated as a root node with no parent.
- **Not setting parent ID at all:** Leaves the existing parent unchanged. If the node is appearing for the first time, it defaults to a root node.

<br />

Note: This function belongs to Content Capture Version 2.
.   
This method must be called on the thread that originally created this UI element. This is typically the [main thread](https://developer.android.com/reference/android/os/Looper#getMainLooper()) of your app.

<br />

<br />

| Parameters ||
|---|---|
| `id` | `AutofillId`: The `https://developer.android.com/reference/android/view/autofill/AutofillId` of the node. This value cannot be `null`. <br /> |
| `properties` | `ContentCaptureNodeProperties`: The `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureNodeProperties` holding the attributes for this node. This value may be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureNodeProperties`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyNodeDisappeared(android.view.autofill.AutofillId)`

### notifyNodeDisappeared

Added in [version 37.2](https://developer.android.com/topic/libraries/support-library/revisions)

```
public abstract void notifyNodeDisappeared (AutofillId id)
```

Removes a node from the active content capture hierarchy.

This is the primary method to report the removal of UI components in Content Capture
Version 2. It applies to both standard `https://developer.android.com/reference/android/view/View` and virtual views,
signaling that the node is no longer part of the visible hierarchy.

When a node is deleted:

- Its internal resources (such as text and content description allocations) are freed.
- Its children are **orphaned** and promoted to root nodes (their parent pointer is cleared). If you want to remove an entire subtree, you must recursively call this method for all descendant nodes in the subtree. Re-adding this node will not automatically relink previous children.

<br />

Note; This function belongs to Content Capture Version 2.
.   
This method must be called on the thread that originally created this UI element. This is typically the [main thread](https://developer.android.com/reference/android/os/Looper#getMainLooper()) of your app.

<br />

<br />

| Parameters ||
|---|---|
| `id` | `AutofillId`: The `https://developer.android.com/reference/android/view/autofill/AutofillId` of the node to delete. This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyNodeAppearedOrChanged(android.view.autofill.AutofillId,%20android.view.contentcapture.ContentCaptureNodeProperties)`

### notifySessionPaused

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final void notifySessionPaused ()
```

Notifies the Content Capture Service that a session has paused.

<br />

### notifySessionResumed

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final void notifySessionResumed ()
```

Notifies the Content Capture Service that a session has resumed.

<br />

### notifyViewAppeared

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final void notifyViewAppeared (ViewStructure node)
```

Notifies the Content Capture Service that a node has been added to the view structure.

Typically called "manually" by views that handle their own virtual view hierarchy, or
automatically by the Android System for views that return `true` on
`https://developer.android.com/reference/android/view/View#onProvideContentCaptureStructure(android.view.ViewStructure,%20int)`.

Consider use `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewsAppeared(java.util.List<android.view.ViewStructure>)` which has a better performance when notifying
a list of nodes has appeared.

Note; This function belongs to Content Capture Version 1.

<br />

<br />

| Parameters ||
|---|---|
| `node` | `ViewStructure`: node that has been added. This value cannot be `null`. <br /> |

### notifyViewDisappeared

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final void notifyViewDisappeared (AutofillId id)
```

Notifies the Content Capture Service that a node has been removed from the view structure.

Typically called "manually" by views that handle their own virtual view hierarchy, or
automatically by the Android System for standard views.

Consider use `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#notifyViewsDisappeared(android.view.autofill.AutofillId,%20long[])` which has a better performance when notifying
a list of nodes has disappeared.

Note; This function belongs to Content Capture Version 1.

<br />

<br />

| Parameters ||
|---|---|
| `id` | `AutofillId`: id of the node that has been removed. This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`

### notifyViewInsetsChanged

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final void notifyViewInsetsChanged (Insets viewInsets)
```

Notifies the Intelligence Service that the insets of a view have changed.

<br />

| Parameters ||
|---|---|
| `viewInsets` | `Insets`: This value cannot be `null`. <br /> |

### notifyViewTextChanged

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final void notifyViewTextChanged (AutofillId id, 
                CharSequence text)
```

Notifies the Intelligence Service that the value of a text node has been changed.

Note; This function belongs to Content Capture Version 1.

<br />

<br />

| Parameters ||
|---|---|
| `id` | `AutofillId`: of the node. This value cannot be `null`. <br /> |
| `text` | `CharSequence`: new text. This value may be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`
- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`

### notifyViewsAppeared

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final void notifyViewsAppeared (List<ViewStructure> appearedNodes)
```

Notifies the Content Capture Service that a list of nodes has appeared in the view structure.

Typically called manually by views that handle their own virtual view hierarchy.

Note; This function belongs to Content Capture Version 1.

<br />

<br />

| Parameters ||
|---|---|
| `appearedNodes` | `List`: nodes that have appeared. Each element represents a view node that has been added to the view structure. The order of the elements is important, which should be preserved as the attached order of when the node is attached to the virtual view hierarchy. This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`

### notifyViewsDisappeared

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final void notifyViewsDisappeared (AutofillId hostId, 
                long[] virtualIds)
```

Notifies the Content Capture Service that many nodes has been removed from a virtual view
structure.

Should only be called by views that handle their own virtual view hierarchy.

After UPSIDE_DOWN_CAKE, this method wraps the virtual children with a pair of view tree
appearing and view tree appeared events.

Note; This function belongs to Content Capture Version 1.

<br />

<br />

| Parameters ||
|---|---|
| `hostId` | `AutofillId`: id of the non-virtual view hosting the virtual view hierarchy (it can be obtained by calling `https://developer.android.com/reference/android/view/ViewStructure#getAutofillId()`). This value cannot be `null`. <br /> |
| `virtualIds` | `long`: ids of the virtual children. This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the `hostId` is an autofill id for a virtual view. |
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if `virtualIds` is empty |

**See also:**

- `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureSession#getContentCaptureVersion()`

### setContentCaptureContext

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public final void setContentCaptureContext (ContentCaptureContext context)
```

Sets the `https://developer.android.com/reference/android/view/contentcapture/ContentCaptureContext` associated with the session.

Typically used to change the context associated with the default session from an activity.

<br />

| Parameters ||
|---|---|
| `context` | `ContentCaptureContext`: This value may be `null`. <br /> |

### toString

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String toString ()
```

Returns a string representation of the object.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | a string representation of the object. <br /> |