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