【问题标题】:Droid Incredible Headphones DetectionDroid 令人难以置信的耳机检测
【发布时间】:2010-11-15 16:37:59
【问题描述】:

我正在为 Droid Incredible 开发一个 Android 应用程序。当我插入耳机时,状态栏上会出现一个图标,因此我认为手机必须知道耳机存在。

我的代码会发出哔哔声以响应各种用户输入,但我今天发现,当用户戴着耳机时,这是一个非常糟糕的主意。哦。

有人对我如何在 Android 中以编程方式检测耳机的存在有什么建议吗?

谢谢, R.

【问题讨论】:

    标签: android headphones


    【解决方案1】:

    我在开发者网站上找到了AudioManager 类,它看起来有一个有用的方法,但我还没有测试过:

    AudioManager am = getSystemService(Context.AUDIO_SERVICE);
    bool headsetEnabled = am.isWiredHeadsetOn();
    

    【讨论】:

    • 这看起来像是对代码的一个很酷、很简单的补充。谢谢,明天我的膜长回来时我会测试它!如果我想实时捕捉耳机连接活动,我想我仍然需要制作一个广播接收器(Eek!),但这似乎是一个完美的“80% 解决方案”。
    • 是的,如果您需要它作为实时设置,这可能不是最适合您的。在构建广播接收器之前(我什至还没有弄乱其中一个),您可以将 AudioManager 声明为类变量,并在您的哔声代码前加上if(!am.isWiredHeadsetOn()) { /* beep */ }
    • 奇怪的是,K(我不是在责怪你)isWiredHeadsetOn() 似乎根本不起作用。我的代码也没有在启动时设置音量。然而,我可能正在混合苹果和橙子(或者 AudioManagers 和 MediaPlayers,确切地说)。
    • 哈哈随便怪我,我没测试。 :P 看起来它应该可以解决问题;想知道它在做什么呢?
    【解决方案2】:

    你会发现它什么时候用http://developer.android.com/reference/android/content/Intent.html#ACTION_HEADSET_PLUG改变

    我不确定是否可以在插入/拔出耳机后确定您的应用是否启动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      • 2013-01-06
      • 2018-08-05
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      • 2021-07-18
      相关资源
      最近更新 更多