USB MIDI unavailable when connected device controls USB mode — workaround steps
Android
When a USB audio device or accessory is connected to your Android device and takes control of the USB connection, the Android device cannot switch to MIDI mode and the USB MIDI option is unavailable or greyed out in Settings.
Why this happens
USB connections involve a hardware-level negotiation over which end acts as the host and which acts as the peripheral. When a connected USB accessory asserts host control, the Android device is forced into peripheral (device) mode and cannot independently change its USB function to MIDI. This is a constraint of the USB specification itself, not a limitation of Esper or Android. However, Esper Compliance Policy settings can also block the Settings UI and ADB methods you would normally use to attempt a workaround, so those must be addressed first.
Steps
-
Check and update your active Compliance Policy. Navigate to Compliance & Configurations → Compliance Policies, open the policy applied to your affected device, and confirm the following settings are enabled:
- ADB
- External Device
- USB File Transfer
- Allow access to the Android Settings app. In the same Compliance Policy, navigate to the app permissions or allowlist section under Apps & Configuration and ensure the Android Settings application is enabled for the device user. This is required so the user can reach the native USB settings screen. Save and push the updated policy.
- Attempt to change USB control mode on the device. Connect the USB audio accessory to the Android device using a USB-C to USB adapter. On the device, open Settings → Connected devices → USB and look for the USB controlled by option. Tap This device to attempt to reassert device-side control, then select Use USB for → MIDI. If this succeeds, confirm your MIDI application recognises the device and that signal passes correctly.
-
Try forcing MIDI mode via ADB (Samsung devices only). If the Settings UI option is unavailable or reverts automatically, connect the Android device to a computer via USB, open a terminal, and run:
This command is confirmed to work on select Samsung models only. After running it, check whether your MIDI application recognises the device.adb shell svc usb setFunctions midi -
Try adapter and connection-timing alternatives if USB control remains stuck. If USB controlled by continues to show Connected device and cannot be changed, the connected accessory is asserting host control at the hardware level and software methods cannot override it. Attempt the following:
- Replace the USB-C to USB adapter — some adapters force OTG host mode on the accessory side. A standard USB-C data cable or a passive adapter may allow the Android device to assert peripheral mode instead.
- Connect the USB accessory before unlocking or powering on the Android device — USB role negotiation can differ at boot time, which may allow the Android device to take control.
- On Samsung devices, check whether a Samsung Knox or OEM-specific USB mode API is available in your environment to force USB device mode programmatically.
Verify: After a successful workaround, the Settings → Connected devices → USB screen should show USB controlled by: This device and Use USB for: MIDI. Your MIDI application should enumerate the connected device and pass audio or MIDI signal without error. If you used the ADB method, the function change takes effect immediately without a reboot.
If this doesn't resolve it
If all steps above have been completed and USB MIDI mode still cannot be activated, the connected USB accessory is likely incompatible with Android device-mode negotiation on your specific hardware. Before contacting Esper Support, collect the following information:
- Android device make, model, and OS version
- USB accessory make and model
- USB-C adapter or cable type being used
- Output of
adb shell svc usb getFunctionsbefore and after the attempted change - A screenshot of Settings → Connected devices → USB showing the current state
- The name of the active Compliance Policy applied to the device
Contact Esper Support with this information so the team can assess whether a device- or OEM-specific solution is available.
Still need help?
If the steps above don't resolve the issue, submit a support ticket with your device model, Android version, Esper Agent version, and a description of what you've already tried — this helps the support team investigate without a follow-up.
Please sign in to leave a comment.
Comments
0 comments