listAllDevices static method
Implementation
static Future<List<AndroidDeviceInfo>> listAllDevices(
{required String cmd}) async {
final result = await Process.run(cmd, ['devices', '-l'], runInShell: true);
if (result.exitCode == Ok) {
//List of devices attached
// FFK0217503002178 offline transport_id:5
// ccad64e device product:grus model:MI_9_SE device:grus transport_id:1
final List<AndroidDeviceInfo> r = <AndroidDeviceInfo>[];
String packageString = result.stdout as String;
final packagesList = packageString.split('\n');
for (var line in packagesList) {
if (!line.contains(':')) {
continue;
}
final rr = line.split(RegExp(r'\s+'));
if (rr.length < 2) {
continue;
}
AndroidDeviceStatus status;
String serialno;
String model = '';
if (rr[1] == 'device') {
status = AndroidDeviceStatus.online;
} else if (rr[1] == 'offline') {
status = AndroidDeviceStatus.offline;
} else {
continue;
}
serialno = rr[0];
rr.forEach((element) {
if (element.contains('model:')) {
model = element.split(':')[1];
}
});
r.add(AndroidDeviceInfo(status, serialno, model: model));
}
return r;
} else {
return [];
}
}