Если не использовать библиотеки эмулирующие консольные запросы, то:
Для начала вам нужно подключиться к конкретному устройству через консоль.
После вам нужно получить имя устройства и использовать вот такую команду
adb -s {name_device} shell {right_request} // right_request == правильный запрос
Вы же в консоли это делали? Если да, то ниже вы явно разберетесь.) Если нет, обратите внимание на мою подпись.
Важно! Не забыть указать в Using'ах
Посмотреть вложение 91883
string pathAdb = project.Variables["pathAdb"].Value; // путь к adb
Process cmd = new Process();
cmd.StartInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
CreateNoWindow = true,
UseShellExecute = false,
WindowStyle = ProcessWindowStyle.Normal,
RedirectStandardInput = true,
RedirectStandardOutput = true,
};
cmd.Start();
cmd.StandardInput.WriteLine($"cd {pathAdb}"); // переход в директорию с adb
Thread.Sleep(200);
cmd.StandardInput.WriteLine(string.Format(@"adb devices")); // запросить список активных устройств
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
return cmd.StandardOutput.ReadToEnd();
Решение с получением коллекции устройств. Подключение к первому и совершение запроса getprop ro.build.version.sdk в shell андроида. ↓
string pathAdb = project.Variables["pathAdb"].Value; // путь к adb
Process cmd = new Process();
cmd.StartInfo = new ProcessStartInfo
{
FileName = $"cmd.exe",
CreateNoWindow = true,
UseShellExecute = false,
WindowStyle = ProcessWindowStyle.Normal,
RedirectStandardInput = true,
RedirectStandardOutput = true,
};
cmd.Start();
//cmd.StandardInput.WriteLine($"cd {pathAdb}"); // переход в директорию с adb // пример нескольких команд
//Thread.Sleep(200);
cmd.StandardInput.WriteLine(string.Format(@"adb devices")); // запросить список активных устройств
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
string consoleResponse = cmd.StandardOutput.ReadToEnd().ToString(); // ответ от консоли
MatchCollection matchListDevices = Regex.Matches(consoleResponse, @"(?m)^emulator.+(?=[ ]+(device|offline))"); // получить коллекцию устройств
List<string> listDevices = matchListDevices.Cast<Match>().Select(match => match.Value).ToList();
string device = project.Variables["device"].Value = listDevices[0]; // вывести в переменную первое устройство для наглядности
cmd.Start();
cmd.StandardInput.WriteLine($"adb -s {device} shell getprop ro.build.version.sdk"); // запрос для получения версии sdk
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
return consoleResponse = cmd.StandardOutput.ReadToEnd().ToString(); // полный ответ из консоли. Дальше тоже можно очистить геруляркой и работать дальше
Ниже приложил шаблон для наглядности. ↓