Source code for androidtv

"""Connect to a device and determine whether it's an Android TV or an Amazon Fire TV.

ADB Debugging must be enabled.
"""

from .androidtv import AndroidTV
from .basetv import BaseTV
from .firetv import FireTV


__version__ = '0.0.20'


[docs]def setup(host, adbkey='', adb_server_ip='', adb_server_port=5037, state_detection_rules=None, device_class='auto'): """Connect to a device and determine whether it's an Android TV or an Amazon Fire TV. Parameters ---------- host : str The address of the device in the format ``<ip address>:<host>`` adbkey : str The path to the ``adbkey`` file for ADB authentication adb_server_ip : str The IP address of the ADB server adb_server_port : int The port for the ADB server state_detection_rules : dict, None A dictionary of rules for determining the state (see :class:`~androidtv.basetv.BaseTV`) device_class : str The type of device: ``'auto'`` (detect whether it is an Android TV or Fire TV device), ``'androidtv'``, or ``'firetv'``` Returns ------- aftv : AndroidTV, FireTV The representation of the device """ if device_class == 'androidtv': return AndroidTV(host, adbkey, adb_server_ip, adb_server_port, state_detection_rules) if device_class == 'firetv': return FireTV(host, adbkey, adb_server_ip, adb_server_port, state_detection_rules) if device_class != 'auto': raise ValueError("`device_class` must be 'androidtv', 'firetv', or 'auto'.") aftv = BaseTV(host, adbkey, adb_server_ip, adb_server_port, state_detection_rules) # Fire TV if aftv.device_properties.get('manufacturer') == 'Amazon': aftv.__class__ = FireTV # Android TV else: aftv.__class__ = AndroidTV return aftv