我在 Android 2.1 中工作,我想检测耳机何时插入/取出。我对安卓很陌生。
我认为这样做的方法是使用广播接收器。我对此进行了细分,并将以下内容放入我的 AndroidManifest.xml 中。但是您是否必须在其他地方注册接收器,例如在活动中?我知道这方面有很多线程,但我真的不明白他们在说什么。另外,在 AndroidManifest.xml 中注册与在活动中动态注册有什么区别?
<receiver android:enabled="true" android:name="AudioJackReceiver" >
<intent-filter>
<action android:name="android.intent.action.HEADSET_PLUG" >
</action>
</intent-filter>
</receiver>
这是类的实现(加上导入)
public class AudioJackReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.w("DEBUG", "headset state received");
}
}
我只是想看看它是否有效,但是当我在运行应用程序时拔下/插入耳机时没有任何显示。
编辑:文档没有说这一点,但是如果在清单中注册,这个可能不起作用吗?当我在我的一个应用程序中注册接收器时,我能够让它响应(或者你必须这样做吗?)