В Android, как я могу сказать своему приложению использовать гарнитуру, подключенную к порту USB на автомобильной док-станции? - PullRequest
2 голосов
/ 06 декабря 2011

У меня есть Motorola RAZR и автомобильный док для него ( этот ). Эта док-станция оснащена специальным USB-кабелем, который не только заряжает телефон, но и оснащен 3,5-мм аудиоразъемом. Я могу подключить к нему гарнитуру (вместо 3,5 мм разъема телефона), и через нее играет музыка. Я также проверил автомобильную док-станцию ​​Galaxy Nexus, и она имеет ту же настройку.

У меня также есть приложение, которое воспроизводит звук, и оно имеет возможность переключать вывод звука в моем приложении между внутренним динамиком и устройством громкой связи. И когда любая гарнитура подключается к 3,5 мм порту телефона, телефон автоматически направляет звук на гарнитуру, а не на внутренний динамик. Но всякий раз, когда гарнитура подключается к док-станции, я не могу заставить свой телефон обнаружить или использовать ее (isWiredHeadsetOn() возвращает false). Звук по-прежнему направляется на внутренний динамик, а не на гарнитуру.

Есть ли способ обнаружить гарнитуру, подключенную через USB, и есть ли способ заставить мое приложение направлять на него звук?

1 Ответ

2 голосов
/ 08 декабря 2011

Я понял - мое приложение использовало AudioManager.STREAM_VOICE_CALL для вывода звука для поддержки гарнитур SCO BT, но для работы док-гарнитуры поток должен быть AudioManager.STREAM_MUSIC. Затем звук автоматически направляется на проводную гарнитуру, подключенную к док-станции.

...