Перейти к основному содержимому

Input API

Описание

IDroidInputAPI предназначен для эмуляции пользовательского ввода на Android-устройстве в ZennoDroid. Позволяет выполнять касания, свайпы, ввод текста, работу с буфером обмена и системными событиями.

Методы

Swipe

  • void Swipe(int x1, int y1, int x2, int y2)
    Выполняет свайп по экрану.

    Параметры:

    • x1, y1 — начальная точка;
    • x2, y2 — конечная точка.
  • void Swipe(int x1, int y1, int x2, int y2, int duration)
    Свайп с управлением скоростью.

    Параметры:

    • x1, y1 — начальная точка;
    • x2, y2 — конечная точка;
    • duration — длительность свайпа (мс).

Пример.

//#1
var input = instance.DroidInstance.Input;

Point start = new Point() { X = 100, Y = 500 }; // Точка старта
Point end = new Point() { X = 200, Y = 200 }; // Точка конца
input.Swipe(start.X, start.Y, end.X, end.Y); // Сделать свайп по координатам

//#2
var duration = 100;
input.Swipe(start.X, start.Y, end.X, end.Y, duration); // Сделать свайп по координатам с настройкой скорости движения

SwipeCurved

  • void SwipeCurved(int x1, int y1, int x2, int y2)
    Изогнутый свайп.

    Параметры:

    • x1, y1 — начальная точка;
    • x2, y2 — конечная точка.
  • void SwipeCurved(int x1, int y1, int x2, int y2, int duration)
    Изогнутый свайп с управлением скоростью.

    Параметры:

    • x1, y1 — начальная точка;
    • x2, y2 — конечная точка;
    • duration — длительность свайпа (мс).
  • void SwipeCurved(int x1, int y1, double bending, int x2, int y2)
    Изогнутый свайп с коэффициентом изгиба.

    Параметры:

    • x1, y1 — начальная точка;
    • bending — коэффициент изгиба;
    • x2, y2 — конечная точка.
  • void SwipeCurved(int x1, int y1, double bending, int x2, int y2, int duration)
    Изогнутый свайп с изгибом и длительностью.

    Параметры:

    • x1, y1 — начальная точка;
    • bending — коэффициент изгиба;
    • x2, y2 — конечная точка;
    • duration — длительность.
  • void SwipeCurved(int x1, int y1, int xPivot, int yPivot, int x2, int y2)
    Изогнутый свайп через промежуточную точку.

    Параметры:

    • x1, y1 — начальная точка;
    • xPivot, yPivot — промежуточная точка кривой;
    • x2, y2 — конечная точка.
  • void SwipeCurved(int x1, int y1, int xPivot, int yPivot, int x2, int y2, int duration)
    Изогнутый свайп через промежуточную точку с управлением скоростью.

    Параметры:

    • x1, y1 — начальная точка;
    • xPivot, yPivot — промежуточная точка кривой;
    • x2, y2 — конечная точка;
    • duration — длительность свайпа (мс).

Пример.

var input = instance.DroidInstance.Input;

Point start = new Point() { X = 100, Y = 500 }; // Точка старта
Point end = new Point() { X = 200, Y = 200 }; // Точка конца
var duration = 100; // скорость свайпа
input.SwipeCurved(start.X, start.Y, end.X, end.Y, duration); // Изогнутый свайп

var xPivot = 200; // Настройка изгиба по X
var yPivot = 700; // Настройка изгиба по Y
input.SwipeCurved(start.X, start.Y, xPivot, yPivot, end.X, end.Y, duration); // Изогнутый свайп c настройкой изгиба

Tap

  • void Tap(int x, int y)
    Выполняет одиночное нажатие по координатам.

    Параметры:

    • x, y — координаты точки.
  • void Tap(int x, int y, int duration)
    Нажатие по координатам с заданной длительностью.

    Параметры:

    • x, y — координаты точки;
    • duration — длительность нажатия (мс).

Пример.

var input = instance.DroidInstance.Input;

Point point = new Point() { X = 100, Y = 500 }; // Точка
input.Tap(point.X, point.Y); // Нажатие по координатам

var duration = 100; // Продолжительность нажатия
input.Tap(point.X, point.Y, duration); // Долгое нажатие по координатам

Touch

  • void Touch(int xMin, int yMin, int xMax, int yMax, bool longPress, string clickDistributionType)
    Нажатие в заданной области с дополнительными настройками.

    Параметры:

    • xMin, yMin — верхний левый угол области;
    • xMax, yMax — нижний правый угол области;
    • longPress — использовать долгое нажатие;
    • clickDistributionType — тип распределения точки клика ("Normal" или "Random").

Пример.

var input = instance.DroidInstance.Input;

Point start = new Point() { X = 100, Y = 500 }; // Точка старта
Point end = new Point() { X = 200, Y = 200 }; // Точка конца

input.Touch(start.X, start.Y, end.X, end.Y, false, "Random"); // Нажатие по координатам с настройками

LongTap

  • void LongTap(int x, int y)
    Выполняет долгое нажатие по координатам.

    Параметры:

    • x — координата по X;
    • y — координата по Y.

LongTapAndSwipe

  • void LongTapAndSwipe(int x1, int y1, int x2, int y2)
    Долгое нажатие с последующим свайпом.

    Параметры:

    • x1, y1 — начальная точка;
    • x2, y2 — конечная точка.
  • void LongTapAndSwipe(int x1, int y1, int x2, int y2, int duration)
    Долгое нажатие со свайпом и управлением скоростью.

    Параметры:

    • x1, y1 — начальная точка;
    • x2, y2 — конечная точка;
    • duration — длительность свайпа (мс).

Пример.

var input = instance.DroidInstance.Input;

Point start = new Point() { X = 100, Y = 500 }; // Точка старта
Point end = new Point() { X = 200, Y = 200 }; // Точка конца

input.LongTapAndSwipe(start.X, start.Y, end.X, end.Y); // долгое нажатие и свайп по экрану

var duration = 100; // Продолжительность нажатия
input.LongTapAndSwipe(start.X, start.Y, end.X, end.Y, duration); // долгое нажатие и свайп по экрану, с настройкой скорости свайпа

LongTapAndSwipeCurved

  • void LongTapAndSwipeCurved(int x1, int y1, int x2, int y2)
    Выполняет долгий тап в точке (x1, y1) и свайп к (x2, y2) по кривой.

  • void LongTapAndSwipeCurved(int x1, int y1, int x2, int y2, int duration)
    То же самое, но с управлением длительностью жеста.

    Параметры:

    • duration — длительность свайпа в миллисекундах.
  • void LongTapAndSwipeCurved(int x1, int y1, double bending, int x2, int y2)
    Добавляет контроль степени кривизны траектории.

    Параметры:

    • bending — коэффициент изгиба (чем больше значение, тем сильнее отклонение от прямой).
  • void LongTapAndSwipeCurved(int x1, int y1, double bending, int x2, int y2, int duration)
    Добавляет контроль степени кривизны траектории с указанием длительности.

    Параметры:

    • bending — коэффициент изгиба (чем больше значение, тем сильнее отклонение от прямой);
    • duration — длительность свайпа в миллисекундах.
  • void LongTapAndSwipeCurved(int x1, int y1, int xPivot, int yPivot, int x2, int y2)
    Выполняет свайп по кривой, проходящей через заданную промежуточную точку (pivot).

    Параметры:

    • xPivot, yPivot — координаты контрольной точки кривой.
  • void LongTapAndSwipeCurved(int x1, int y1, int xPivot, int yPivot, int x2, int y2, int duration)
    Выполняет свайп по кривой, проходящей через заданную промежуточную точку (pivot) с управлением длительностью.

    Параметры:

    • xPivot, yPivot — координаты контрольной точки кривой;
    • duration — длительность свайпа в миллисекундах.

FingerDown

  • void FingerDown(int x, int y)
    Эмулирует касание экрана (палец опускается) в точке.

  • void FingerDown(int x, int y, int fingerId)
    Эмулирует касание с указанием ID пальца (для мультитача).

    Параметры:

    • fingerId — ID пальца.

FingerMove

  • void FingerMove(int x, int y)
    Перемещает активный палец в новую точку.

  • void FingerMove(int x, int y, int fingerId)
    Перемещает конкретный палец.

    Параметры:

    • fingerId — ID пальца.

FingerUp

  • void FingerUp(int x, int y)
    Убирает палец с экрана (завершает касание).

  • void FingerUp(int x, int y, int fingerId)
    Завершает касание конкретного пальца.

    Параметры:

    • fingerId — ID пальца.

FreeMove

  • void FreeMove(string json, double speed)
    Выполняет пользовательский жест по заданной траектории.

    Параметры:

    • json — JSON-описание траектории движения;
    • speed — скорость выполнения жеста.

ZoomIn

  • void ZoomIn()
    Приближает экран.

  • void ZoomIn(int centerX, int centerY, double ratio)
    Приближение с параметрами.

    Параметры:

    • centerX, centerY — центр приближения;
    • ratio — коэффициент приближения.

Пример.

var input = instance.DroidInstance.Input;

input.ZoomIn(); // Приблизить
input.ZoomIn(-1, -1, 1.0); // Приблизить с настройкой

ZoomOut

  • void ZoomOut()
    Отдаляет экран.

  • void ZoomOut(int centerX, int centerY, double ratio)
    Отдаление с параметрами.

    Параметры:

    • centerX, centerY — центр отдаления;
    • ratio — коэффициент отдаления.

Пример.

var input = instance.DroidInstance.Input;

input.ZoomOut(); // Отдалить
input.ZoomOut(-1, -1, 1.0); // Отдалить с настройкой

SendText

  • void SendText(string text)
    Вводит текст в активное поле.

    Параметры:

    • text — строка для ввода.
  • void SendText(string text, int latency)
    Вводит текст с задержкой между символами.

    Параметры:

    • text — строка для ввода;
    • latency — задержка между символами (мс).

Пример.

var input = instance.DroidInstance.Input;

var text = "Привет мир!";
input.SendText(text); // Вводим текст в поле элемента

var latency = 100; // Скорость набора текста
input.SendText(text, latency); // Вводим текст с настройкой скорости ввода

SendKeyCode

  • void SendKeyCode(KeyCode keyCode)
    Отправляет клавишу через enum KeyCode.

    Параметры:

    • keyCode — значение перечисления KeyCode.
  • void SendKeyCode(int keyCode)
    Отправляет клавишу по числовому коду.

    Параметры:

    • keyCode — числовой код клавиши.

Пример.

var input = instance.DroidInstance.Input;

input.SendKeyCode(KeyCode.KEYCODE_HOME); // Отправка спецсимволов (по названию)
input.SendKeyCode(3); // Отправка спецсимволов (по числовому значению)

ClearText

  • void ClearText()
    Очищает текст в текущем активном поле ввода.

Пример.

var input = instance.DroidInstance.Input;

input.ClearText(); // очистить текст элемента

GetClipboard

  • string GetClipboard()
    Получает содержимое буфера обмена.

    Возвращает:
    Строку из буфера обмена.

Пример.

var input = instance.DroidInstance.Input;

var text = input.GetClipboard(); // Получить текст из буфера обмена

SetClipboard

  • void SetClipboard(string text)
    Устанавливает содержимое буфера обмена.

    Параметры:

    • text — строка для записи в буфер.

Пример.

var input = instance.DroidInstance.Input;

var text = "Привет мир!";
input.SetClipboard(text); // Поместить текст в буфер обмена

Shell

  • string Shell(string command)
    Выполняет команду ADB Shell.

    Параметры:

    • command — команда для выполнения.

    Возвращает:
    Результат выполнения команды.

  • string Shell(string command, int timeout)
    Выполняет команду с таймаутом.

    Параметры:

    • command — команда;
    • timeout — время ожидания (мс).
  • string Shell(string command, int timeout, bool checkconnect)
    Выполняет команду с таймаутом и проверкой подключения.

    Параметры:

    • command — команда;
    • timeout — время ожидания (мс);
    • checkconnect — проверять подключение к устройству.

Пример.

var input = instance.DroidInstance.Input;

var adb = "dumpsys activity activities | grep ResumedActivity"; // Команда для получения текущей активити
var activity = input.Shell(adb); //Получить текущую активити

var adb = "am start -n com.example.app/.MainActivity"; // Команда запустить приложение с активити
input.Shell(adb, 1000); //Запускаем приложение с ожиданием выполнения

var adb = "reboot"; // Команда перезагрузки
input.Shell(adb, 1000, true); // Выполнить команду перезагрузки c ожиданием выполнения и проверкой подключения adb

RootShell

  • string RootShell(string command)
    Выполняет shell-команду с root-доступом.

    Параметры:

    • command — команда для выполнения (например: cat /system/build.prop, ls /data/data).

    Возвращает:
    Результат выполнения команды (stdout) в виде строки.

  • string RootShell(string command, int timeout)
    Выполняет root-команду с ограничением по времени.

    Параметры:

    • command — команда;
    • timeout — максимальное время выполнения (мс).
  • string RootShell(string command, int timeout, bool checkconnect)
    Расширенный вариант с проверкой соединения.

    Параметры:

    • command — команда;
    • timeout — таймаут выполнения (мс);
    • checkconnect — проверять подключение к устройству перед выполнением.

SendSmsMessage

  • void SendSmsMessage(string phone, string message)
    Эмулирует получение входящего SMS на устройстве.

    Параметры:

    • phone — номер телефона отправителя;
    • message — текст сообщения.

Пример.

var input = instance.DroidInstance.Input;

var phone = "+79998007060";
var message = "Привет!";
input.SendSmsMessage(phone, message); // Эмуляция входящего SMS сообщения