一般采用的是動態監聽的方式來實現的:
package com.renhui.ej; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.Toast; public class MainActivity extends AppCompatActivity { HeadsetPlugReceiver headsetPlugReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); registerHeadsetPlugReceiver(); // 注冊監聽 } private void registerHeadsetPlugReceiver() { headsetPlugReceiver = new HeadsetPlugReceiver(); IntentFilter filter = new IntentFilter(); filter.addAction("android.intent.action.HEADSET_PLUG"); registerReceiver(headsetPlugReceiver, filter); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); unregisterReceiver(headsetPlugReceiver); //注銷監聽 } class HeadsetPlugReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub if (intent.hasExtra("state")) { if (intent.getIntExtra("state", 0) == 0) { Toast.makeText(context, "headset not connected", Toast.LENGTH_LONG).show(); } else if (intent.getIntExtra("state", 0) == 1) { Toast.makeText(context, "headset connected", Toast.LENGTH_LONG).show(); } } } } }
