blob: 0eb7c4ac7daac3b68e8eb7a539158bbf32a69313 [file] [log] [blame] [view]
# 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.