forked from qt-creator/qt-creator
Android: Detect "unauthorized" devices.
For now just show that in the compile output. Change-Id: I332a8cae5653155175abfb1a4877ca1ca7cce8d5 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
This commit is contained in:
@@ -392,7 +392,12 @@ QString AndroidConfigurations::getDeployDeviceSerialNumber(int *apiLevel, const
|
|||||||
QVector<AndroidDeviceInfo> devices = connectedDevices(error);
|
QVector<AndroidDeviceInfo> devices = connectedDevices(error);
|
||||||
|
|
||||||
foreach (AndroidDeviceInfo device, devices) {
|
foreach (AndroidDeviceInfo device, devices) {
|
||||||
if (!device.cpuAbi.contains(abi)) {
|
if (device.unauthorized) {
|
||||||
|
if (error) {
|
||||||
|
*error += tr("Skipping %1: Unauthorized. Please check the confirmation dialog on your device..").arg(device.serialNumber);
|
||||||
|
*error += QLatin1Char('\n');
|
||||||
|
}
|
||||||
|
} else if (!device.cpuAbi.contains(abi)) {
|
||||||
if (error) {
|
if (error) {
|
||||||
*error += tr("Skipping %1: ABI is incompatible, device supports ABIs: %2.")
|
*error += tr("Skipping %1: ABI is incompatible, device supports ABIs: %2.")
|
||||||
.arg(getProductModel(device.serialNumber))
|
.arg(getProductModel(device.serialNumber))
|
||||||
@@ -429,17 +434,20 @@ QVector<AndroidDeviceInfo> AndroidConfigurations::connectedDevices(QString *erro
|
|||||||
}
|
}
|
||||||
QList<QByteArray> adbDevs = adbProc.readAll().trimmed().split('\n');
|
QList<QByteArray> adbDevs = adbProc.readAll().trimmed().split('\n');
|
||||||
adbDevs.removeFirst();
|
adbDevs.removeFirst();
|
||||||
AndroidDeviceInfo dev;
|
|
||||||
|
|
||||||
// workaround for '????????????' serial numbers:
|
// workaround for '????????????' serial numbers:
|
||||||
// can use "adb -d" when only one usb device attached
|
// can use "adb -d" when only one usb device attached
|
||||||
foreach (const QByteArray &device, adbDevs) {
|
foreach (const QByteArray &device, adbDevs) {
|
||||||
const QString serialNo = QString::fromLatin1(device.left(device.indexOf('\t')).trimmed());;
|
const QString serialNo = QString::fromLatin1(device.left(device.indexOf('\t')).trimmed());
|
||||||
|
const QString deviceType = QString::fromLatin1(device.mid(device.indexOf('\t'))).trimmed();
|
||||||
|
AndroidDeviceInfo dev;
|
||||||
dev.serialNumber = serialNo;
|
dev.serialNumber = serialNo;
|
||||||
dev.sdk = getSDKVersion(dev.serialNumber);
|
dev.sdk = getSDKVersion(dev.serialNumber);
|
||||||
dev.cpuAbi = getAbis(dev.serialNumber);
|
dev.cpuAbi = getAbis(dev.serialNumber);
|
||||||
|
dev.unauthorized = (deviceType == QLatin1String("unauthorized"));
|
||||||
devices.push_back(dev);
|
devices.push_back(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
qSort(devices.begin(), devices.end(), androidDevicesLessThan);
|
qSort(devices.begin(), devices.end(), androidDevicesLessThan);
|
||||||
if (devices.isEmpty() && error)
|
if (devices.isEmpty() && error)
|
||||||
*error = tr("No devices found in output of: %1").arg(adbToolPath().toString() + QLatin1String(" devices"));
|
*error = tr("No devices found in output of: %1").arg(adbToolPath().toString() + QLatin1String(" devices"));
|
||||||
@@ -544,6 +552,7 @@ QVector<AndroidDeviceInfo> AndroidConfigurations::androidVirtualDevices() const
|
|||||||
// armeabi-v7a devices can also run armeabi code
|
// armeabi-v7a devices can also run armeabi code
|
||||||
if (dev.cpuAbi == QStringList(QLatin1String("armeabi-v7a")))
|
if (dev.cpuAbi == QStringList(QLatin1String("armeabi-v7a")))
|
||||||
dev.cpuAbi << QLatin1String("armeabi");
|
dev.cpuAbi << QLatin1String("armeabi");
|
||||||
|
dev.unauthorized = false;
|
||||||
devices.push_back(dev);
|
devices.push_back(dev);
|
||||||
}
|
}
|
||||||
qSort(devices.begin(), devices.end(), androidDevicesLessThan);
|
qSort(devices.begin(), devices.end(), androidDevicesLessThan);
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ struct AndroidDeviceInfo
|
|||||||
QString serialNumber;
|
QString serialNumber;
|
||||||
QStringList cpuAbi;
|
QStringList cpuAbi;
|
||||||
int sdk;
|
int sdk;
|
||||||
|
bool unauthorized;
|
||||||
|
|
||||||
static QStringList adbSelector(const QString &serialNumber);
|
static QStringList adbSelector(const QString &serialNumber);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user