Droid Incredible Headphones Detection

问题描述:

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

我的代码会响应各种用户输入而产生嘟嘟声,但是我今天发现用户戴着耳机时这真是一个糟糕的主意。噢。

有没有人有建议如何我可以检测耳机的存在编程方式,在Android?

感谢, R.

您发现当它与http://developer.android.com/reference/android/content/Intent.html#ACTION_HEADSET_PLUG

变化我不知道是否有可能找出是否后插入耳机/拔出你的应用程序已启动。

我发现AudioManager类开发人员网站上,它看起来对此有一个有用的方法,但我没有测试它:

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

这看起来像一个很酷的,简单相加的代码。谢谢,我明天会在我的脑袋长大后再测试它!如果我想实时捕捉耳机连接活动,我想我仍然需要制作广播接收器(Eek!),但这似乎是一个完美的“80%解决方案”。 – Rich 2010-11-15 22:49:54

+0

是的,如果你需要它作为一个实时设置,这可能不是最适合你的。在构建广播接收器之前(我还没有弄清楚其中的一个),你可以将AudioManager声明为一个类变量,并且只需在前面加上'if(!am.isWiredHeadsetOn()){/ *哔* /}'。 – kcoppock 2010-11-15 23:32:16

+0

奇怪的是,K,(我不是在怪你)isWiredHeadsetOn()似乎根本不起作用。我的代码在启动时没有设置音量级别。但是,我可能会混合苹果和橘子(或音频管理器和MediaPlayers,确切而言)。 – Rich 2010-11-16 14:05:08