【问题标题】:Doing something if it detects that headphones are plugged in如果检测到耳机已插入,则执行某些操作
【发布时间】:2013-10-20 17:48:49
【问题描述】:

我想要做到这一点,因此如果将耳机插入设备,则会发生某些事情,例如出现通知图标。 (我已经完成了通知图标的工作)但我似乎无法找到实现它的方法。我想要这样的东西

if headphones_plugged_in {
do this 
}

我在网上找到的

AudioManager.isWiredHeadsetOn()

我只是不知道如何使用它。我也已经在清单中添加了正确的权限!如果您可以指导我或将我链接到某些东西,那就太好了。谢谢!

【问题讨论】:

  • 把它放在if 声明中?或者你的问题到底是什么?
  • 就像我如何做一个 if 语句说如果耳机插入,这样做@Femaref
  • @FernandoRamirez 这就是标点符号变得重要的地方。这看起来就像你刚才说的:“做这个 Femaref”

标签: android audio if-statement headset


【解决方案1】:

我找到了解决办法。

AudioManager audio=(AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
        if(audio.isWiredHeadsetOn()){
             Toast.makeText(this,"Headset is Connected",Toast.LENGTH_SHORT).show();
        }else{
             Toast.makeText(this,"Headset is Not Connected",Toast.LENGTH_SHORT).show();
        }

谢谢大家!

【讨论】:

    【解决方案2】:

    我认为您的问题可能有一些重复:

    1. Check whether headphones are plugged in
    2. Android: Checking if headphones are plugged in

    您想要的方法似乎已在 API 级别 14 中被弃用。 documentation 表示使用它来检查它是否连接了耳机。因此,出于您的目的,这将是合适的。但是,要检查是否正在播放音频,您可能需要其他解决方案。

    从您的评论来看,您似乎想知道如何实际使用它。该函数返回 true 或 false 以将其作为参数放入 if 语句中,然后您将被设置。

    【讨论】:

    • 是的,我知道这一点。我只需要检查它们是否已插入,无需检查是否正在播放音乐。
    • 那么你应该可以接受这篇文章中显示的内容 (stackoverflow.com/questions/6249884/…) 我没有做过任何 android 开发,但我不明白为什么 (AudioManager)getSystemService(AUDIO_SERVICE) .isWiredHeadsetOn() 不应该工作。我会把它留给更有经验的人
    【解决方案3】:

    我会设置BroadcastReceiver 来获得android.intent.action.HEADSET_PLUG 意图http://developer.android.com/reference/android/content/Intent.html#ACTION_HEADSET_PLUG

    【讨论】:

      【解决方案4】:

      在您的清单中添加一个<receiver> 来侦听the ACTION_HEADSET_PLUG broadcast。 文档显示了 Intent 附加信息,您可以使用这些附加信息来确定耳机是否已插入 (state) 等。

      【讨论】:

        猜你喜欢
        • 2018-04-21
        • 2013-04-17
        • 1970-01-01
        • 2012-05-27
        • 2017-06-08
        • 2014-06-18
        • 2012-01-18
        • 2010-10-26
        • 2017-04-24
        相关资源
        最近更新 更多