Document 'androidtv.download' and 'androidtv.upload' services (#11501)

* Document 'androidtv.adb_filesync' service

* Document 'androidtv.download' and 'androidtv.upload' services
This commit is contained in:
Jeff Irion 2020-01-07 06:12:10 -08:00 committed by Franck Nijhof
parent 86ae27b9ff
commit 9e27283217

View File

@ -249,6 +249,24 @@ You can also use the command `GET_PROPERTIES` to retrieve the properties used by
A list of various intents can be found [here](https://gist.github.com/mcfrojd/9e6875e1db5c089b1e3ddeb7dba0f304).
### `androidtv.download` and `androidtv.upload`
You can use the `androidtv.download` service to download a file from your Android TV / Fire TV device to your Home Assistant instance.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | no | Name of Android TV / Fire TV entity.
| `device_path` | no | The filepath on the Android TV / Fire TV device.
| `local_path` | no | The filepath on your Home Assistant instance.
Similarly, you can use the `androidtv.upload` service to upload a file from Home Assistant instance to Android TV / Fire TV devices.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
| `entity_id` | no | Name(s) of Android TV / Fire TV entities.
| `device_path` | no | The filepath on the Android TV / Fire TV device.
| `local_path` | no | The filepath on your Home Assistant instance.
## Custom State Detection
The Android TV integration works by polling the Android TV / Fire TV device at a regular interval and collecting a handful of properties. Unfortunately, there is no standard API for determining the state of the device to which all apps adhere. Instead, the backend `androidtv` package uses three of the properties that it collects to determine the state: `audio_state`, `media_session_state`, and `wake_lock_size`. The correct logic for determining the state differs depending on the current app, and the backend `androidtv` package implements app-specific state detection logic for a handful of apps. Of course, it is not feasible to implement custom logic for each and every app in the `androidtv` package. Moreover, the correct state detection logic may differ across devices and device configurations.