Hi all,
for connecting and interacting with USB peripherals from an Android smartphone you have to refer to ADK.
Google used to have an ADK board working in connection to an Arduino Mega. This is currently end of life.
There's also an Arduino Mega ADK board, having an additional USB host port on it.
There are also USB Host shields for Arduino, to convert a Uno into the equivalent of a Mega ADK board.
In the B4A domain you can also find an old thread from Andy Graham about Arduino ADK with a lot of information:
https://www.b4x.com/android/forum/threads/arduino-adk-introduction.27510/
I've played with it long time ago and it's nice. For example you can launch an Android app automatically when the corresponding USB peripheral is connected to the smartphone. However it's definitely not easy compared to cheaper and easier Bluetooth to connect custom hardware to an Android phone.
HC-05 and HC-06 are a classic choice for Bluetooth, but more recently also the ESP-32 boards are a great choice at very low cost. They include not only Bluetooth hardware but also a powerful microcontroller and WiFi. On recent Android phones the ESP-32 can also work with Bluetooth LE with some advantages over classic Bluetooth, like reduced power requirements and no need for pairing the device to the phone, for better user experience.
Regards
Andrea