4
有誰知道我可以檢測到設備上的耳機插孔是否在Android上拔掉?我有一個音樂播放器,當耳機拔下時我需要暫停音樂。我發現的最接近的東西是使用AudioManager
。這是正確的方向嗎?耳機插孔聽衆Android
有誰知道我可以檢測到設備上的耳機插孔是否在Android上拔掉?我有一個音樂播放器,當耳機拔下時我需要暫停音樂。我發現的最接近的東西是使用AudioManager
。這是正確的方向嗎?耳機插孔聽衆Android
這是我落得這樣做:
private class NoisyAudioStreamReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())) {
pause();
}
}
}
private IntentFilter intentFilter = new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY);
private void startPlayback() {
registerReceiver(myNoisyAudioStreamReceiver(), intentFilter);
}
private void stopPlayback() {
unregisterReceiver(myNoisyAudioStreamReceiver);
}
,我發現這個鏈接的回答:http://developer.android.com/training/managing-audio/audio-output.html
雖然我沒有關於如何做到這一點的全部細節,我相信你能在以下行中使用「ACTION_HEADSET_PLUG」:IntentFilter receiverFilter = new IntentFilter(Intent.ACTION_HEADSET_PLUG); HeadsetStateReceiver receiver = new headsetStateReceiver(); registerReceiver(this.toggleDeviceConnectionState(),receiverFilter); – shim 2012-11-09 21:18:43
@shim只需檢查意向(https://developer.android.com/reference/android/content/Intent.html#ACTION_HEADSET_PLUG)的文檔,你就是對的:是的,該意圖過濾器存在,但從API21 +他們建議您改用AudioManager。我認爲之所以是因爲BECOMING_NOISY也考慮了其他類型的音頻輸出設備(例如藍牙耳機),例如,如果藍牙耳機斷開連接,它也應該進行廣播。我現在正在嘗試它,但爲了向後兼容,我想這兩種方法都需要實施... – 2017-12-28 16:23:51