耳机拔出会发出两个广播, ACTION_AUDIO_BECOMING_NOISY 和 ACTION_HEADSET_PLUG,这篇文章主要讲述这两个广播对于音乐程序的作用。
首先实现在001文章的基础上实现对ACTION_AUDIO_BECOMING_NOISY的监听,具体的代码代码如下,和ACTION_HEADSET_PLUG类似,不过只有拔出耳机的时候才有广播。
package com.audio.android.headsetconnection;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.view.Gravity;
import android.widget.Toast;
/**
* Created by wang on 17-6-20.
*/
public class BecomingNoiseReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(AudioManager.ACTION_AUDIO_BECOMING_NOISY)) {
Toast.makeText(context, "Becoming Noise", Toast.LENGTH_SHORT).show();
}
}
}
package com.audio.android.headsetconnection;
import android.content.IntentFilter;
import android.media.AudioManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
private HeadsetPlugReceiver headsetPlugReceiver;
private BecomingNoiseReceiver becomingNoiseReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
registerHeadsetPlugReceiver();
registerBecomingNoiseReceiver();
}
private void registerHeadsetPlugReceiver() {
headsetPlugReceiver = new HeadsetPlugReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.intent.action.HEADSET_PLUG");
registerReceiver(headsetPlugReceiver, intentFilter);
}
private void r