diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 8a4a0465c3b..db284270804 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -731,9 +731,18 @@ QList connectedDevices(QString *error) bool isConnected(const QString &serialNumber) { - const QList devices = connectedDevices(); - for (const AndroidDeviceInfo &device : devices) { - if (device.serialNumber == serialNumber) + Process adbProcess; + adbProcess.setCommand({adbToolPath(), {"devices"}}); + adbProcess.runBlocking(); + if (adbProcess.result() != ProcessResult::FinishedWithSuccess) + return false; + + // mid(1) - remove "List of devices attached" header line. + // Example output: "List of devices attached\nemulator-5554\tdevice\n\n". + const QStringList lines = adbProcess.allOutput().split('\n', Qt::SkipEmptyParts).mid(1); + for (const QString &line : lines) { + // skip the daemon logs + if (!line.startsWith("* daemon") && line.left(line.indexOf('\t')).trimmed() == serialNumber) return true; } return false;