def connect_device(uri): """ Initialize device with uri and set the device as the current one. :param uri: an URI where to connect to device, e.g. `android://adbhost:adbport/serialno?param=value¶m2=value2` :return: device instance :Example: * ``android:///`` # local adb device using default params * ``android://adbhost:adbport/1234566?cap_method=javacap&touch_method=adb`` # remote adb device using custom params * ``windows:///`` # local Windows application * ``ios:///`` # iOS device :platforms: Android, iOS, Windows """ d = urlparse(uri) platform = d.scheme host = d.netloc uuid = d.path.lstrip("/") params = dict(parse_qsl(d.query)) if host: params["host"] = host.split(":") cls = import_device_cls(platform) dev = cls(uuid, **params) G.add_device(dev) return dev
def init_device(platform="Android", uuid=None, **kwargs): """ Initialize device if not yet, and set as current device. :param platform: Android, IOS or Windows :param uuid: uuid for target device, e.g. serialno for Android, handle for Windows, uuid for iOS :param kwargs: Optional platform specific keyword args, e.g. `cap_method=JAVACAP` for Android :return: device instance """ cls = import_device_cls(platform) dev = cls(uuid, **kwargs) # Add device instance in G and set as current device. G.add_device(dev) return dev
def init_device(platform="Android", uuid=None, **kwargs): """ Initialize device if not yet, and set as current device. :param platform: Android, IOS or Windows :param uuid: uuid for target device, e.g. serialno for Android, handle for Windows, uuid for iOS :param kwargs: Optional platform specific keyword args, e.g. `cap_method=JAVACAP` for Android :return: device instance """ cls = import_device_cls(platform) dev = cls(uuid, **kwargs) for index, instance in enumerate(G.DEVICE_LIST): if dev.uuid == instance.uuid: G.LOGGING.warn("Device:%s updated %s -> %s" % (dev.uuid, instance, dev)) G.DEVICE_LIST[index] = dev break else: G.add_device(dev) return dev