| # Matter tv app common-api |
| |
| The tv-app common-api module defines the interface to interact with the Matter |
| agent service for the content apps. This module defines the AIDL interfaces, |
| clusters and command abstractions accessible. It also defines various constants |
| and intent field definitions that would be used by the content app while |
| interacting with the Matter SDK. The interface provided by this module helps |
| content app to register dynamic endpoints as well as report any attribute |
| changes to the SDK. |
| |
| ## Permissions needed |
| |
| To utilize the Matter agent interface the partner apps need to |
| |
| - Query and bind themselves to a service that handles |
| `com.matter.tv.app.api.action.MatterAppAgent` action |
| - The host process should hold the |
| `com.matter.tv.app.api.permission.SEND_DATA` permission |
| - To bind with the Matter app agent service, the client should hold the |
| `com.matter.tv.app.api.permission.BIND_SERVICE_PERMISSION` permission |
| |
| ## Matter app agent APIs |
| |
| The Matter app agent service exposes the following interface |
| |
| - `setSupportedClusters` |
| - This API allows partners to report clusters dynamically to the Matter |
| agent |
| - This API is not incremental and on each API call we should report the |
| full set of clusters - any clusters that are omitted in the latest API |
| call that were added previously will be removed |
| - The above behavior does not impact static clusters declared in app |
| resources and they will not be removed |
| - Dynamic cluster can be used to override and hide a static cluster based |
| on cluster name |
| - `reportAttributeChange` |
| - This API allows reporting changes to attributes by the content app |
| - It takes in the cluster ID and attribute ID for which the attribute |
| change is reported |
| |
| ## Cluster and Attribute IDs |
| |
| The common API package defines commonly used cluster IDs as well as |
| corresponding Attribute ID's through `com.matter.tv.app.api.Clusters`. The |
| common-api provides a quick way to refer to different clusters defined by the |
| Matter spec relevant for media casting, as well as attributes and commands |
| associated with each one. |
| |
| ## Intents |
| |
| The supported intents are defined under the |
| `com.matter.tv.app.api.MatterIntentConstants`. This helper class defines the |
| relevant intents used while interacting with the Matter app agent service. This |
| includes the android permission strings to as well as command and attribute |
| intent fields to be used. |