我在Android 2.1中工作,我想要檢測何時插入/取出耳機。我很新的android。在Android中如何註冊接收耳機插頭播放?
我認爲這樣做的方法是使用廣播接收器。我sublcassed這一點,我也把以下放在我的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");
}
}
我只是想看看它是否工作,但沒有顯示出來,當我拔下/插頭在運行應用程序時在耳機中。
編輯:文檔不會說這個,但是如果註冊在清單中,這個可能不起作用嗎?我能得到它,當我註冊的接收器在我的應用程序一個反應(或你必須這樣做呢?)
您不能使用清單聲明來接收此意圖。您的接收器需要通過代碼進行定義。請參閱http://stackoverflow.com/questions/6249023/detecting-whether-a-headset-is-plugged-in-or-not/6366238#6366238 – William
另外,我無法保證初學者會覺得有多混亂需要明確的註冊*和*代碼註冊。這個答案正確使用「**或**,你可以簡單地通過你的應用程序定義」。它是清單或代碼,而不是兩者。在HEADSET_PLUG的情況下,威廉是正確的:你不能使用清單聲明來接收這個意圖。所以只有代碼選項仍然存在。 – WebViewer