我有一个摩托罗拉RAZR和一个汽车底座(这个)。这个底座有一条特殊的USB线,不仅可以给手机充电,还有一个3.5毫米的音频插头。我可以把耳机连上(而不是用手机的3.5毫米插孔),音乐就可以通过它播放。我还测试了Galaxy Nexus汽车底座,它也有相同的设置。
我也有一个播放音频的应用程序,它有能力在我的应用程序中切换内部扬声器和扬声器电话之间的音频输出。只要将耳机插入手机的3.5毫米接口,手机就会自动将音频传输到耳机,而不是内部扬声器。但是当耳机插入底座时,我无法让我的手机检测或使用它(isWiredHeadsetOn()
返回false)。音频仍然被路由到内部扬声器,而不是耳机。
是否有一种方法来检测usb插入耳机,是否有一种方法来强制我的应用程序路由音频到它?
我弄清楚了——我的应用程序使用AudioManager.STREAM_VOICE_CALL
进行音频输出以支持SCO BT耳机,但为了使dock耳机工作,流必须是AudioManager.STREAM_MUSIC
。然后音频自动路由到插入基座的有线耳机。