ContentCaptureSession
  public
  
  
  abstract
  class
  ContentCaptureSession
  
    extends Object
  
  
  
  
  
      implements
      
        AutoCloseable
      
  
  
| java.lang.Object | |
| ↳ | android.view.contentcapture.ContentCaptureSession | 
Session used when notifying the Android system about events associated with views.
Summary
| Public methods | |
|---|---|
| 
        
        
        
        final
        
        ContentCaptureSession | 
      createContentCaptureSession(ContentCaptureContext context)
      Creates a new  | 
| 
        
        
        
        final
        
        void | 
      destroy()
      Destroys this session, flushing out all pending notifications to the service. | 
| 
        
        
        
        
        
        void | 
      flush()
      Flushes an internal buffer of UI events and signals System Intelligence (SI) that a semantically meaningful state has been reached. | 
| 
        
        
        
        final
        
        ContentCaptureContext | 
      getContentCaptureContext()
      Gets the  | 
| 
        
        
        
        final
        
        ContentCaptureSessionId | 
      getContentCaptureSessionId()
      Gets the id used to identify this session. | 
| 
        
        
        
        
        
        AutofillId | 
      newAutofillId(AutofillId hostId, long virtualChildId)
      Creates a new  | 
| 
        
        
        
        final
        
        ViewStructure | 
      newViewStructure(View view)
      Creates a  | 
| 
        
        
        
        final
        
        ViewStructure | 
      newVirtualViewStructure(AutofillId parentId, long virtualId)
      Creates a  | 
| 
        
        
        
        final
        
        void | 
      notifySessionPaused()
      Notifies the Content Capture Service that a session has paused. | 
| 
        
        
        
        final
        
        void | 
      notifySessionResumed()
      Notifies the Content Capture Service that a session has resumed. | 
| 
        
        
        
        final
        
        void | 
      notifyViewAppeared(ViewStructure node)
      Notifies the Content Capture Service that a node has been added to the view structure. | 
| 
        
        
        
        final
        
        void | 
      notifyViewDisappeared(AutofillId id)
      Notifies the Content Capture Service that a node has been removed from the view structure. | 
| 
        
        
        
        final
        
        void | 
      notifyViewInsetsChanged(Insets viewInsets)
      Notifies the Intelligence Service that the insets of a view have changed. | 
| 
        
        
        
        final
        
        void | 
      notifyViewTextChanged(AutofillId id, CharSequence text)
      Notifies the Intelligence Service that the value of a text node has been changed. | 
| 
        
        
        
        final
        
        void | 
      notifyViewsAppeared(List<ViewStructure> appearedNodes)
      Notifies the Content Capture Service that a list of nodes has appeared in the view structure. | 
| 
        
        
        
        final
        
        void | 
      notifyViewsDisappeared(AutofillId hostId, long[] virtualIds)
      Notifies the Content Capture Service that many nodes has been removed from a virtual view structure. | 
| 
        
        
        
        final
        
        void | 
      setContentCaptureContext(ContentCaptureContext context)
      Sets the  | 
| 
        
        
        
        
        
        String | 
      toString()
      Returns a string representation of the object. | 
| Inherited methods | |
|---|---|
Public methods
createContentCaptureSession
public final ContentCaptureSession createContentCaptureSession (ContentCaptureContext context)
Creates a new ContentCaptureSession.
 
See View.setContentCaptureSession(ContentCaptureSession) for more info.
| Parameters | |
|---|---|
| context | ContentCaptureContext: This value cannot benull. | 
| Returns | |
|---|---|
| ContentCaptureSession | This value cannot be null. | 
destroy
public final void destroy ()
Destroys this session, flushing out all pending notifications to the service.
Once destroyed, any new notification will be dropped.
flush
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.
getContentCaptureContext
public final ContentCaptureContext getContentCaptureContext ()
Gets the ContentCaptureContext associated with the session.
| Returns | |
|---|---|
| ContentCaptureContext | context set on constructor or by setContentCaptureContext(android.view.contentcapture.ContentCaptureContext), ornullif never
         explicitly set. | 
getContentCaptureSessionId
public final ContentCaptureSessionId getContentCaptureSessionId ()
Gets the id used to identify this session.
| Returns | |
|---|---|
| ContentCaptureSessionId | This value cannot be null. | 
newAutofillId
public AutofillId newAutofillId (AutofillId hostId, long virtualChildId)
Creates a new AutofillId for a virtual child, so it can be used to uniquely identify
 the children in the session.
| Parameters | |
|---|---|
| hostId | AutofillId: id of the non-virtual view hosting the virtual view hierarchy (it can be
 obtained by callingViewStructure.getAutofillId()).
 This value cannot benull. | 
| virtualChildId | long: id of the virtual child, relative to the parent. | 
| Returns | |
|---|---|
| AutofillId | if for the virtual child
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalArgumentException | if the parentIdis a virtual child id. | 
newViewStructure
public final ViewStructure newViewStructure (View view)
Creates a 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 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 ContentCaptureSession.notifyViewAppeared(ViewStructure),
 ContentCaptureSession.notifyViewDisappeared(AutofillId), and
 ContentCaptureSession.notifyViewTextChanged(AutofillId, CharSequence) respectively.
 The structure for the a child must be created using
 ContentCaptureSession.newVirtualViewStructure(AutofillId, long), and the
 autofillId for a child can be obtained either through
 childStructure.getAutofillId() or
 ContentCaptureSession.newAutofillId(AutofillId, long).
 
When the virtual view hierarchy represents a web page, you should also:
- Call ContentCaptureManager.getContentCaptureConditions()to infer content capture events should be generate for that URL.
- Create a new ContentCaptureSessionchild for every HTML element that renders a new URL (like anIFRAME) and use that session to notify events from that subtree.
Note: the following methods of the structure will be ignored:
 
- ViewStructure.setChildCount(int)
- ViewStructure.addChildCount(int)
- ViewStructure.getChildCount()
- ViewStructure.newChild(int)
- ViewStructure.asyncNewChild(int)
- ViewStructure.asyncCommit()
- ViewStructure.setWebDomain(String)
- ViewStructure.newHtmlInfoBuilder(String)
- ViewStructure.setHtmlInfo(android.view.ViewStructure.HtmlInfo)
- ViewStructure.setDataIsSensitive(boolean)
- ViewStructure.setAlpha(float)
- ViewStructure.setElevation(float)
- ViewStructure.setTransformation(android.graphics.Matrix)
| Parameters | |
|---|---|
| view | View: This value cannot benull. | 
| Returns | |
|---|---|
| ViewStructure | This value cannot be null. | 
newVirtualViewStructure
public final ViewStructure newVirtualViewStructure (AutofillId parentId, long virtualId)
Creates a ViewStructure for a "virtual" view, so it can be passed to
 notifyViewAppeared(android.view.ViewStructure) by the view managing the virtual view hierarchy.
| Parameters | |
|---|---|
| parentId | AutofillId: id of the virtual view parent (it can be obtained by callingViewStructure.getAutofillId()on the parent).
 This value cannot benull. | 
| virtualId | long: id of the virtual child, relative to the parent. | 
| Returns | |
|---|---|
| ViewStructure | a new ViewStructurethat can be used for Content Capture purposes.
 This value cannot benull. | 
notifySessionPaused
public final void notifySessionPaused ()
Notifies the Content Capture Service that a session has paused.
notifySessionResumed
public final void notifySessionResumed ()
Notifies the Content Capture Service that a session has resumed.
notifyViewAppeared
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
 View.onProvideContentCaptureStructure(ViewStructure, int).
 
Consider use notifyViewsAppeared(List) which has a better performance when notifying
 a list of nodes has appeared.
| Parameters | |
|---|---|
| node | ViewStructure: node that has been added.
 This value cannot benull. | 
notifyViewDisappeared
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 notifyViewsDisappeared(AutofillId, long) which has a better performance when notifying
 a list of nodes has disappeared.
| Parameters | |
|---|---|
| id | AutofillId: id of the node that has been removed.
 This value cannot benull. | 
notifyViewInsetsChanged
public final void notifyViewInsetsChanged (Insets viewInsets)
Notifies the Intelligence Service that the insets of a view have changed.
| Parameters | |
|---|---|
| viewInsets | Insets: This value cannot benull. | 
notifyViewTextChanged
public final void notifyViewTextChanged (AutofillId id, CharSequence text)
Notifies the Intelligence Service that the value of a text node has been changed.
| Parameters | |
|---|---|
| id | AutofillId: of the node.
 This value cannot benull. | 
| text | CharSequence: new text.
 This value may benull. | 
notifyViewsAppeared
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.
| 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 benull. | 
notifyViewsDisappeared
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.
| Parameters | |
|---|---|
| hostId | AutofillId: id of the non-virtual view hosting the virtual view hierarchy (it can be
 obtained by callingViewStructure.getAutofillId()).
 This value cannot benull. | 
| virtualIds | long: ids of the virtual children.
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalArgumentException | if the hostIdis an autofill id for a virtual view. | 
| IllegalArgumentException | if virtualIdsis empty | 
setContentCaptureContext
public final void setContentCaptureContext (ContentCaptureContext context)
Sets the ContentCaptureContext associated with the session.
 
Typically used to change the context associated with the default session from an activity.
| Parameters | |
|---|---|
| context | ContentCaptureContext: This value may benull. | 
toString
public String toString ()
Returns a string representation of the object.
| Returns | |
|---|---|
| String | a string representation of the object. | 
