Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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());
        }