protected async override void OnResume() { Log.Info(TAG, "OnResume"); base.OnResume(); var portInfo = Intent.GetParcelableExtra(EXTRA_TAG) as UsbSerialPortInfo; int vendorId = portInfo.VendorId; int deviceId = portInfo.DeviceId; int portNumber = portInfo.PortNumber; Log.Info(TAG, string.Format("VendorId: {0} DeviceId: {1} PortNumber: {2}", vendorId, deviceId, portNumber)); var drivers = await MainActivity.FindAllDriversAsync(usbManager); var driver = drivers.Where((d) => d.Device.VendorId == vendorId && d.Device.DeviceId == deviceId).FirstOrDefault(); if (driver == null) { throw new Exception("Driver specified in extra tag not found."); } port = driver.Ports[portNumber]; if (port == null) { titleTextView.Text = "No serial device."; return; } Log.Info(TAG, "port=" + port); titleTextView.Text = "Serial device: " + port.GetType().Name; serialIoManager = new SerialInputOutputManager(port) { BaudRate = 4800, DataBits = 8, StopBits = StopBits.One, Parity = Parity.None, }; serialIoManager.DataReceived += (sender, e) => { RunOnUiThread(() => { UpdateReceivedData(e.Data); }); }; serialIoManager.ErrorReceived += (sender, e) => { RunOnUiThread(() => { var intent = new Intent(this, typeof(MainActivity)); StartActivity(intent); }); }; Log.Info(TAG, "Starting IO manager .."); try { serialIoManager.Open(usbManager); } catch (Java.IO.IOException e) { titleTextView.Text = "Error opening device: " + e.Message; return; } }