Those small Bluetooth push-to-talk buttons made for Zello are cheap, light and clip to anything. PTT Keypress makes one of them key VoxDMR on Android. Hold the button and you are transmitting. Let go and you are not. That is the whole app.
BLE PTT button
wakes on press, sleeps on release
PTT Keypress
holds the link, turns presses into PTT events
VoxDMR
keys up on the network while you hold
VoxDMR turns an Android phone into a DMR talkgroup client, and it can be keyed from outside by a plain Android broadcast. What was missing was something that understood the buttons. They sleep the moment you let go, only advertise while held, and the first workarounds all needed root, Shizuku, or an ADB command after every reboot. PTT Keypress is the piece in the middle, and it needs none of those.
A paired button is kept on Android's own auto-connect, so the phone reconnects the instant the button wakes. A sleeping button shows as Ready, not Disconnected, because that is what it is.
Press and release become VoxDMR's external PTT broadcasts. No fake keyboard, no accessibility service, and it works from the lock screen or with another app in front.
If a button drops off before it manages to send its release, the disconnect itself sends the matching PTT up. Short-lived presses that barely wake the button still register.
Once a button is paired the bridge starts itself again after a restart and sits in a quiet notification, ready before you have unlocked the phone.
Pair a couple of them. Overlapping holds keep VoxDMR keyed until the last button is let go.
You hold the button to make it visible while pairing, so that hold is ignored. Adding a button never transmits.
Anything built on the common HM-10 style Bluetooth LE profile that the Zello-compatible buttons use. The Focket PTT-Z01 is the one on my desk, and the PRYME BT-PTT-Z and the DIY 100pct-ptt design speak the same protocol.
FFE0FFE1, notify0x010x00com.jcalado.voxdmr) via its PTT_DOWN and PTT_UP broadcastsv0.2.0 · Android 8 and up · direct APK · about 16 MB
Sideload it. There is no store listing and no updater, and each build installs straight over the last. It is an early hardware-test build, so please tell me on GitHub which phone and button you tried it with.