Input API
Пожалуйста, ознакомьтесь с Правилами использования материалов на данном ресурсе.
Описание.
IDroidInputAPI Input
Предоставляет доступ к эмуляции действий на устройстве для взаимодействия с интерфейсом и элементами приложения. Этот интерфейс используется для выполнения свайпов, тапов и ввода текста, а также для выполнения команд ADB Shell.
Методы.
Cвайп по экрану от точки до точки.
void Swipe(int x1, int y1, int x2, int y2)
Параметры:
int x1, int y1 // Координаты первой точки.
int x2, int y2 // Координаты второй точки.
Перегрузка:
int 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); // Сделать свайп по координатам с настройкой скорости движения
Изогнутый свайп от точки до точки.
void SwipeCurved(int x1, int y1, int x2, int y2, int duration)
Параметры:
int x1, int y1 // Координаты первой точки.
int x2, int y2 // Координаты второй точки.
int 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); // Изогнутый свайп
Изогнутый свайп с контролем изгиба.
void SwipeCurved(int x1, int y1, int xPivot, int yPivot, int x2, int y2, int duration)
Параметры:
int x1, int y1 // Координаты первой точки.
int xPivot // Точка вращения по Х.
int yPivot // Точка вращения по Y.
int x2, int y2 // Координаты второй точки.
int 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; // Скорость свайпа
var xPivot = 200; // Настройка изгиба по X
var yPivot = 700; // Настройка изгиба по Y
input.SwipeCurved(start.X, start.Y, xPivot, yPivot, end.X, end.Y, duration); // Изогнутый свайп c настройкой изгиба
Нажатие по координатам.
void Tap(int x, int y)
Параметры:
int x // Координаты точки по Х.
int y // Координаты точки по Y.
Перегрузка:
int 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); // Долгое нажатие по координатам
Нажатие по координатам c дополнительными настройками.
void Touch(int xMin, int yMin, int xMax, int yMax, bool longPress, string clickDistributionType)
Параметры:
int xMin, int yMin // Координаты нижней точки.
int xMax, int yMax // Координаты верхней точки.
bool longPress // Использовать долгое нажатие
string 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"); // Нажатие по координатам с настройками
Долгое нажатие и свайп по экрану.
void LongTapAndSwipe(int x1, int y1, int x2, int y2)
Параметры:
int x1, int y1 // Координаты первой точки.
int x2, int y2 // Координаты второй точки.
Перегрузка:
int 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); // долгое нажатие и свайп по экрану, с настройкой скорости свайпа
Ввод текста в поле.
void SendText(string text)
Параметры:
string text // Текст ввода.
Перегрузка:
int latency // Задержка между вводом символов.
Пример.
var input = instance.DroidInstance.Input;
var text = "Привет мир!";
input.SendText(text); // Вводим текст в поле элемента
var latency = 100; // Скорость набора текста
input.SendText(text, latency); // Вводим текст с настройкой скорости ввода
Ввод специальных символов (через KeyCode).
void SendKeyCode(KeyCode keyCode)
Параметры:
KeyCode keyCode // Идентификатор спец.символа.
Перегрузка:
int keyCode // Числовой код спец.символа.
Пример.
var input = instance.DroidInstance.Input;
input.SendKeyCode(KeyCode.KEYCODE_HOME); //Отправка спецсимволов (по названию)
input.SendKeyCode(3); //Отправка спецсимволов(по числовому значению)
Очистить поле ввода от текста.
void ClearText()
Пример.
var input = instance.DroidInstance.Input;
input.ClearText(); // очистить текст элемента
Выполнить команду ADB Shell.
string Shell(string command)
Параметры:
string command // Команда ADB, которую нужно выполнить.
Перегрузка:
int timeout // Время ожидания команды.
bool 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
Взять текст из Буфера обмена.
string GetClipboard()
Пример.
var input = instance.DroidInstance.Input;
var text = input.GetClipboard(); // Получить текст из буфера обмена
Скопировать текст в Буфер обмена.
void SetClipboard(string text)
Параметры:
string text // Текст для буфера обмена.
Пример.
var input = instance.DroidInstance.Input;
var text = "Привет мир!";
input.SetClipboard(text); // Поместить текст в буфер обмена
Приблизить экран.
void ZoomIn()
Перегрузка:
int centerX // Центр точки по Х.
int centerY // Центр точки по Y.
double ratio // Значение приближения.
Пример.
var input = instance.DroidInstance.Input;
input.ZoomIn(); // Приблизить
input.ZoomIn(-1, -1, 1.0); // Приблизить с настройкой
Отдалить экран.
void ZoomOut()
Перегрузка:
int centerX // Центр точки по Х.
int centerY // Центр точки по Y.
double ratio // Значение отдаления.
Пример.
var input = instance.DroidInstance.Input;
input.ZoomOut(); // Отдалить
input.ZoomOut(-1, -1, 1.0); // Отда лить с настройкой
Эмуляция получения SMS на устройство.
void SendSmsMessage(string phone, string message)
Параметры:
string phone // Телефон, который якобы отправляет нам SMS.
string message // Текст, который должен поступить в SMS.
Пример.
var input = instance.DroidInstance.Input;
var phone = "+79998007060";
var message = "Привет!";
input.SendSmsMessage(phone, message); // Эмуляция входящего SMS сообщения