Нет никакого способа сделать это таким образом, чтобы гарантировать, что он будет работать на всех устройствах Android. Проблема здесь в том, что на платформах обычно отсутствует какое-либо устройство со списком HDMI + Speaker или HDMI + Headset (т. Е. Аудиоустройство, которое описывает маршрут низкого уровня для одного выходного потока как для HDMI, так и для другого адресата). Не то, чтобы обязательно были какие-либо аппаратные ограничения, но это просто не тот маршрут, который вы обычно хотели бы использовать, и поэтому он не был добавлен.
Я никогда не сталкивался с платформой, на которой для любого типа потока выбирались как HDMI, так и проводная гарнитура. HDMI-динамик можно выбрать для типов потоков RING и ALARM на некоторых платформах, но если на платформе отсутствует комбо-устройство для реализации этого решения маршрутизации, вы все равно получите только аудио в либо HDMI, либо Громкоговоритель.
Взгляните в этом коде , чтобы понять, что я имею в виду. Это то, что OEM-производители, использующие платформы Qualcomm, в значительной степени основывают свой код на. И то, что делает этот конкретный фрагмент кода, выбирает низкоуровневый маршрут вывода для определенного потока. В вашем случае он увидит, что доступен HDMI (AUX_DIGITAL), поэтому он будет выбирать вариант использования «HDMI» (который соответствует чему-то как это ) и немедленно вернуться.