ComPort for Android USB

Delphi and C++ Builder serial communication library for USB connected devices for Android.
  • uses usb-serial-for-android library
  • supports FT232R, CDC/ACM (Arduino Uno), CP2102 and CH34x chips
  • no special root access privileges needed
  • available for Delphi/C++ Builder XE6 - 10.2
  • source code included in registered version
  • royalty free distribution in applications


JUsbSerialPortClass = interface(IJavaClass)
  property DATABITS_5: Integer read;
  property DATABITS_6: Integer read;
  property DATABITS_7: Integer read;
  property DATABITS_8: Integer read;
  property FLOWCONTROL_NONE: Integer read;
  property FLOWCONTROL_RTSCTS_IN: Integer read;
  property FLOWCONTROL_RTSCTS_OUT: Integer read;
  property FLOWCONTROL_XONXOFF_IN: Integer read;
  property FLOWCONTROL_XONXOFF_OUT: Integer read;
  property PARITY_EVEN: Integer read;
  property PARITY_MARK: Integer read;
  property PARITY_NONE: Integer read;
  property PARITY_ODD: Integer read;
  property PARITY_SPACE: Integer read;
  property STOPBITS_1: Integer read;
  property STOPBITS_1_5: Integer read;
  property STOPBITS_2: Integer read;

JUsbSerialPort = interface(IJavaInstance)
  procedure close;
  function getCD: Boolean;
  function getCTS: Boolean;
  function getDriver: JUsbSerialDriver;
  function getDSR: Boolean;
  function getDTR: Boolean;
  function getPortNumber: Integer;
  function getRI: Boolean;
  function getRTS: Boolean;
  function getSerial: JString;
  procedure open(connection: JUsbDeviceConnection);
  function purgeHwBuffers(purgeReadBuffers: Boolean; purgeWriteBuffers: Boolean): Boolean;
  function &read(dest: TJavaArray<Byte>; timeoutMillis: Integer): Integer;
  procedure setDTR(value: Boolean);
  procedure setParameters(baudRate: Integer; dataBits: Integer; stopBits: Integer; parity: Integer);
  procedure setRTS(value: Boolean);
  function &write(src: TJavaArray<Byte>; timeoutMillis: Integer): Integer;

JSerialInputOutputManager_Listener = interface(IJavaInstance)
  procedure onNewData(data: TJavaArray<Byte>);
  procedure onRunError(e: JException);

Download and order


What files should be deployed to Android device?
Add these files in Delphi Deployment window:
Local NameRemote Path  Note
usbserial.dexassets\internal\  Delphi 10 and higher: add classes.jar to Libraries list in Project Manager instead

Add these lines to AndroidManifest.template.xml file:
  <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />

<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter" />

Related links