Deep Hardware Integration

Hytera P50 & P60 PTT App — Native Push-to-Talk Integration

Dialog PTT is one of the only PTToIP platforms with firmware-level integration for Hytera Android radios. Hardware PTT key, firmware display, ROM lone worker services — all fully wired.

Supported Models

Hytera Android Radio Support

📻

Hytera P50

Full hardware PTT key integration via Android keycode mapping. Firmware display bridge — channel name, call status, and contact name shown on the radio display. Audio routed through VOICE_COMMUNICATION source for correct HAL operation.

📻

Hytera P50E

ROM allowlist integration — Dialog PTT runs as a certified PoC application under package ID com.mcptt, one of eight entries in the P50E firmware's PoC allowlist. Full mic access, GPS radio activation, and firmware display through the Dream SDK broadcast API.

📻

Hytera P60

ROM MandownManager and LoneWorkerManager services connected via reflection with hidden-API exemptions. Hardware-level fall detection and lone worker check-in — not a software simulation. Both ROM services confirmed operational.

📻

Hytera MNC360

Full Android PTT radio support. Hardware PTT key, standard Android audio routing, GPS, and all Dialog PTT features including AES-256-GCM E2EE and lone worker monitoring.

P50E Technical Detail

How P50E Integration Works

ROM PoC Allowlist

The Hytera P50E firmware contains a hardcoded list of eight approved PoC application package names. Only apps on this list receive:

  • Microphone access via the HAL audio pipeline
  • Priority call overlay windows
  • GPS radio activation at firmware level
  • Hardware PTT button routing
  • Firmware display bridge broadcasts

Dialog PTT is deployed on P50E under package ID com.mcptt — a certified PoC package name within the P50E allowlist. Without this, mic access and GPS are silently rejected at the HAL layer regardless of Android permissions granted.

Firmware Display Bridge

Dialog PTT communicates with the P50E firmware display using Hytera's com.dream.* broadcast intent API. This keeps the radio's physical display synchronised with the PTT state:

  • Current talkgroup name shown on display
  • TX/RX call status indicators
  • Connected/disconnected state
  • Talking contact name during active calls
  • PTT floor status (floor held / floor free)

The broadcast protocol uses specific intent actions, extras, and flags defined by Hytera's Dream SDK — including intentional firmware typos in key names that must be preserved for the firmware to recognise the intents.

P60 Technical Detail

P60 ROM Safety Services

MandownManager ROM Service

The Hytera P60 exposes a firmware-level man-down service via android.dream.MandownManager. Dialog PTT connects to this service using:

  • VMRuntime.setHiddenApiExemptions(["L"]) — bypasses Android 12+ hidden-API blocklist
  • MandownManager.getInstance() — connects to the ROM service
  • Hardware tilt/fall sensor — not software accelerometer simulation
  • Configurable tilt angle threshold and response time

LoneWorkerManager ROM Service

The P60 also exposes a firmware-level lone worker service via android.dream.LoneWorkerManager (service name: loneworker). Dialog PTT uses:

  • LoneWorkerManager.getInstance() — firmware check-in timer
  • registerCallback() — receives alarm notifications from firmware
  • notifyPocIncallState(int) — tells firmware when PTT call is active (suppresses check-in during TX)
  • Hardware-coordinated alarm cancel when dispatcher sends ALARM_CANCEL

Testing note: The P60 ROM suppresses man-down alerts when the device is connected to USB (charging). For live testing of the man-down alarm flow, the device must be disconnected from USB power. This is firmware behaviour — mPlugType:2 disables the alarm trigger when on charger.

Audio Architecture

Correct HAL Audio Routing on Hytera Radios

Getting audio right on Hytera Android radios requires following the firmware's exact AudioRecord initialisation sequence. Dialog PTT implements this correctly — most third-party PTT apps do not.

Required Initialisation Sequence

The P50/P50E HAL audio pipeline requires operations in a strict order:

  1. Set AudioManager.MODE_IN_COMMUNICATION
  2. Set isSpeakerphoneOn = true
  3. Set HAL parameter poc_record_status=1
  4. Construct AudioRecord(VOICE_COMMUNICATION)
  5. Call startRecording()

poc_record_status=1 must be set before AudioRecord construction — the HAL reads it at construction time to decide whether to open the mic circuit. Setting it after startRecording() leaves the mic muted silently.

HAL Parameters

  • poc_status=halfduplex — opens the mic circuit for PTT TX (half-duplex, not phone call mode)
  • poc_record_status=1 — activates HAL recording mode before AudioRecord construction
  • poc_record_status=0 + poc_status=off — releases the HAL mic circuit after TX ends
  • Audio source: VOICE_COMMUNICATION (source 7) — MIC source keeps the HAL muted regardless of other parameters

These requirements are proven from decompiled Hytera firmware (AudioDevAdapter.smali) and verified in production. They apply to P50, P50E, and P60.

Other Vendors

12+ PTT Radio Vendors Supported

Beyond Hytera, Dialog PTT works on a broad range of Android PTT radios. Hardware PTT key mapping via Android keycode, standard audio routing, GPS via LocationManager fallback.

📡

Inrico

Hardware PTT key, GPS, full Dialog PTT feature set on Inrico T320, T310, and compatible models.

📡

Sonim

Rugged Android PTT radios with hardware key mapping. Suitable for extreme environment deployments alongside Dialog PTT.

📡

Blackview & Generic Android

Any Android 8+ device with a side PTT key. Keycode mapping covers the most common hardware key assignments. Works alongside standard smartphones.

📡

TE580 (MediaTek MT6735)

Android 5.1 / API 22 compatibility. PTT, channel up/down buttons fully mapped. Confirmed operational with Dialog PTT server via QUIC + WebSocket.

Deploy Dialog PTT on Your Hytera Fleet

Request a demo and we'll demonstrate the full Hytera integration on a P50 or P60. We can provision your existing devices the same day.

Request a Demo   All Features →