/// <summary> /// 更新设备信息 /// </summary> /// <param name="device"></param> private void UpdateNewDevice(Device device) { var pros = AndroidDeviceHelper.GetProperteis(device); device.OSType = EnumOSType.Android; device.DeviceManager = AndroidDeviceManager.Instance; if (pros.IsValid()) { device.Properties = pros; device.SerialNumber = device.GetProperty("ro.serialno").Trim(); device.Manufacture = device.GetProperty("ro.product.manufacturer") ?? "unknow"; device.Brand = device.GetProperty("ro.product.brand") ?? "unknow"; device.Model = device.GetProperty("ro.product.model") ?? "unknow"; device.Name = device.GetProperty("ro.product.name") ?? "unknow"; device.OSVersion = device.GetProperty("ro.build.version.release") ?? "unknow"; } //获取手机的IMEI号,不同手机Key不一样,且当它为空时,取MEID号代替。 if (device.IMEI.IsInvalid()) { AndroidDeviceHelper.GetIMEINumber(device); } if (device.IMSI.IsInvalid()) { AndroidDeviceHelper.GetIMSINumber(device); } //获取设备su命令和ls命令格式 以及是否root的信息 device.SU = "su -c \"{0}\" "; device.LS = "ls -l \"{0}\""; device.IsRoot = AndroidDeviceHelper.CanSU(device); if (!device.IsRoot) { device.SU = "su -c {0} "; device.IsRoot = AndroidDeviceHelper.CanSU(device); if (!device.IsRoot) { device.SU = "{0}"; device.IsRoot = AndroidDeviceHelper.CanSU(device); if (!device.IsRoot) { device.SU = "su -c \"{0}\" "; } } } //获取设备的SD卡路径 device.SDCardPath = AndroidDeviceHelper.GetSDCardPath(device); //获取设备的内存容量信息 AndroidDeviceHelper.GetDiskCapacityInfo(device); }
private void DoOneDeviceMonitor() { //1.获取当前连接列表 List <Device> devices = null; int iRestartAttemptCount = 0; do { devices = FindCurConnectDevices(); iRestartAttemptCount++; if (null == devices && iRestartAttemptCount >= ConstCodeHelper.MONITOR_ATTEMPTCOUNT) {//如果多次查找都返回null 说明adb连接失败 考虑重启ADB服务 LoggerManagerSingle.Instance.Error("多次创建ADB连接失败,开始重启ADB服务!"); AndroidDeviceHelper.StopADB(); AndroidDeviceHelper.StartADB(); return; } } while (null == devices); //2.获取新增设备和断开连接设备 var sameds = CurConnectDevs.Where(s => devices.Any(sd => sd.Equals(s))).ToList(); var newConnecnted = devices.Except(CurConnectDevs).ToList(); var disConnecteds = CurConnectDevs.Except(devices).ToList(); foreach (var same in sameds) { //如果基本属性获取不成功,则重试一次 if (same.Model == null || same.Manufacture == null) { UpdateNewDevice(same); } } foreach (var add in newConnecnted) { UpdateNewDevice(add); OnConnected(add); CurConnectDevs.Add(add); } foreach (var dis in disConnecteds) { OnDisconnected(dis); CurConnectDevs.Remove(dis); } }
public override void DoSelfPretection() { AndroidDeviceHelper.StopADB(); AndroidDeviceHelper.StartADB(); }