I'm building a print server app for Android. The app receives print jobs from another source and should send them directly to a connected USB printer.
I do not want to use Android's built-in PrintManager because it always shows the system print UI and requires user interaction.
My goal is:
Detect when a USB printer is connected.
Request USB permission once.
Connect to the printer directly using UsbManager.
Send print jobs programmatically without displaying any print dialog or print preview.
Print completely in the background (silent printing).
Is this possible on standard Android?
If so, what is the recommended approach? Do I need to communicate directly with the printer using UsbDeviceConnection and printer-specific protocols (ESC/POS, ZPL, etc.), or is there another Android API intended for silent printing?
The printer may be connected via USB and I need full control because the device acts as a dedicated print server.
Printer : Epson L321 , Android version : any