in src/main/java/com/fazecast/jSerialComm/android/AndroidPort.java [198:220]
public long openPortNative(SerialPort serialPort)
{
// Obtain user permission to open the port
if (!usbManager.hasPermission(usbDevice)) {
synchronized (AndroidPort.class) {
awaitingUserPermission = true;
while (awaitingUserPermission) {
usbManager.requestPermission(usbDevice, permissionIntent);
try { AndroidPort.class.wait(); } catch (InterruptedException ignored) { }
}
if (!userPermissionGranted)
return 0L;
}
}
// Open and configure the port using chip-specific methods
usbConnection = usbManager.openDevice(usbDevice);
if ((usbConnection == null) || !openPort() || !configPort(serialPort))
closePortNative();
// Return whether the port was successfully opened
return (usbConnection != null) ? 1L: 0L;
}