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

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 сообщения