#java #android #headset
#java #Android #гарнитура
Вопрос:
Я пытаюсь выяснить, как использовать разъем для наушников для запуска действия в моем приложении, используя пользовательскую кнопку. У меня есть некоторый код, который определяет, когда я нажимаю кнопку на гарнитуре, подключенной к порту, но если я подключу кабель TRRS к порту и закорочу контакты, я ничего не получу.
Я нашел это:https://source.android.com/devices/accessories/headset/plug-headset-spec
Но в нем говорится, что R1 должен иметь 0 Ом, так что не приведет ли это к тому, что он что-то сделает? На гарнитуру не подается внешнее напряжение, поэтому я не думал, что мне придется подавать напряжение на свою схему. И что представляет R1? Воспроизведение, пауза, отключение звука или другое? Кто-нибудь может указать мне правильное направление, чтобы разобраться в этом?
Ответ №1:
Хорошо, я понял это. После долгих испытаний со многими резисторами я наконец понял, как это работает.
На штекере TRRS есть 4 кольца — R1 (наконечник) и R2 — наконечники, R3 — заземление, а R4 (основание) — для микрофона.
Предполагается, что замыкание R4 на R3 запускает действие кнопки «Воспроизведение / пауза».
Часть, которую я не понял, заключается в том, что схема ожидает, что в цепи всегда будет сопротивление из-за микрофона. Итак, когда вы подключаете его, сопротивление R4-R3 должно составлять не менее 1100 Ом, чтобы телефон думал, что подключен микрофон. Существует большая разница в том, какое сопротивление. В моем тестировании работало 1100 Ом, как и 4400 Ом. Без этого сопротивления он считает, что есть только динамики, и игнорирует любые сигналы кнопок.
Где я облажался, так это то, что я думал, что сопротивление требуется только при нажатии кнопки. Нет, он должен быть там постоянно, поэтому вы включаете резистор в цепь параллельно переключателю.
Надеюсь, это поможет кому-то еще в будущем, который также может не очень хорошо разбираться в оборудовании.