private void UpdateConnectedDevices() { // Here we're using adbclient to get devices instead of DeviceMonitor.GetDevices() because the latter // doesn't return the full DeviceData just the serial number IEnumerable <DeviceData> connectedDevices = _adbClient.GetDevices(); foreach (DeviceData device in connectedDevices) { var deviceViewModel = new AndroidDeviceViewModel(device); ThreadingExtensions.DispatchOnUIThread(() => AndroidDeviceViewModels.Add(deviceViewModel)); } }
public byte[] GetScreenshot() { var isConnected = EnsureAdbServerRunning(); if (isConnected == false) { return(Array.Empty <byte>()); } var device = _adbClient.GetDevices()[0]; const string screenshotPathOnDevice = "/sdcard/DCIM/raid.png"; _adbClient.ExecuteRemoteCommand($"screencap -p {screenshotPathOnDevice}", device, new DebugReceiver()); using var memoryStream = new MemoryStream(); using var adbSocket = new AdbSocket(_adbClient.EndPoint); using var syncService = _syncServiceFactory.Create(adbSocket, device); syncService.Pull(screenshotPathOnDevice, memoryStream, null, CancellationToken.None); return(memoryStream.ToArray()); }