耳机插入检测 - isWiredHeadsetOn()仅适用于耳机

Per*_*_ml 5 android android-audiomanager

如果耳机当前已插入,我有一个检测问题.我使用Intent.ACTION_HEADSET_PLUG并且它运行良好.我启动一个服务,在onCreate()方法中,我通过registerReceiver()注册我的接收器.大多数时候我立即收到ACTION_HEADSET_PLUG广播,所以我知道耳机是否插入.

但有时候(我不知道为什么)我在注册接收器后没有立即收到这个广播 - 所以我不知道耳机的当前状态.也许我可以假设在那种情况下他们没有连接 - 但我不确定它是否是100%的真相.所以我找到了AudioManager#isWiredHeadsetOn()方法,我还添加了所需的权限MODIFY_AUDIO_SETTINGS.问题是它只适用于耳机(耳机+麦克风),当只是插入耳机时,它每次都会返回假.拜托,您知道如何解决这个问题吗?我正在为Android 2.1开发.