App API
Описание
IDroidAppAPI предназначен для управления приложениями на Android-устройстве в ZennoDroid. Предоставляет методы для работы с данными приложений, аккаунтами, уведомлениями, cookies и состоянием приложений.
Большинство методов принимают параметр packageName — имя пакета приложения. Для поиска нужного имени используйте инструмент Установленные приложения.
Повторяет логику работы кубика Действия с приложением для версий Lite/Pro и Enterprise.
Свойства
Top
-
string Top { get; }
Текущее активное приложение.Возвращает:
Имя пакета приложения на переднем плане.
TopPid
-
uint TopPid { get; }
PID текущего приложения.Возвращает:
Идентификатор процесса.
Пример.
var app = instance.DroidInstance.App;
string top = app.Top;
uint TopPid = app.TopPid;
Методы
AddAccount
-
bool AddAccount(string name, string type, string password)
Добавляет аккаунт на устройство.Параметры:
name— имя аккаунта (например, email или логин);type— тип аккаунта (например:com.google,com.facebook.auth.login);password— пароль аккаунта в зашифрованном виде, каким его возвращает GetAccounts. В открытом виде пароль не принимается. Пустая строка иnullравнозначны: пароль не задаётся.
Возвращает:
true, если аккаунт успешно добавлен; иначеfalse. -
bool AddAccount(string name, string type, string password, string metadata)
Добавляет аккаунт с дополнительными метаданными.Параметры:
name— имя аккаунта;type— тип аккаунта;password— пароль аккаунта в зашифрованном виде, каким его возвращает GetAccounts;metadata— дополнительные данные аккаунта в том виде, в котором их вернул GetAccounts: именно с ними аккаунт переносится на другое устройство вместе с авторизацией. Произвольный текст или свой JSON здесь не подойдут.
Возвращает:
true, если аккаунт успешно добавлен; иначеfalse.
Пример.
var app = instance.DroidInstance.App;
// Забираем аккаунт с одного устройства
var json = app.GetAccounts("com.android.chrome");
project.Json.FromString(json);
var name = project.Json[0].name;
var type = project.Json[0].type;
var password = project.Json[0].password;
var metadata = project.Json[0].metadata;
// И добавляем на другом
app.AddAccount(name, type, password); // Только аккаунт
app.AddAccount(name, type, password, metadata); // Вместе с авторизацией
AppDir
-
string AppDir(string packageName)
Возвращает путь к директории приложения на устройстве.Параметры:
packageName— имя пакета приложения (например:com.android.chrome).
Пример.
var app = instance.DroidInstance.App;
var dir = app.AppDir("com.android.chrome"); // Каталог приложения на устройстве
project.SendInfoToLog(dir);
BackupAppData
-
void BackupAppData(string packageName, string pathToBackup)
Создаёт резервную копию данных приложения.Параметры:
packageName— имя пакета приложения;pathToBackup— путь для сохранения бэкапа.
-
void BackupAppData(string packageName, string pathToBackup, bool savePermissions)
Создаёт резервную копию с возможностью сохранения разрешений приложения.Параметры:
savePermissions— сохранять ли текущие разрешения приложения.
-
void BackupAppData(string packageName, string pathToBackup, bool savePermissions, string accountType)
Расширенное резервное копирование с учётом типа аккаунта.Параметры:
savePermissions— сохранять разрешения;accountType— тип аккаунта (например:com.yandex.passport,com.twitter.android.auth.login). Тип аккаунта можно узнать с помощью методаGetAccounts(string packageName).
Пример.
var app = instance.DroidInstance.App;
var packageName = "com.android.chrome"; // Имя приложения
var pathSave = @"/dir/bakups/name_bakup"; // Путь куда сохранить бэкап
app.BackupAppData(packageName, pathSave); // Сделать бэкап