天天看點

如何檢測耳機的插入狀态

1.原理:

其實android系統在耳機插入和拔出的時候都會發送廣播,是以我們要想檢測耳機的狀态隻需要注冊響應的BroadCastReceiver,對狀态進行響應的判斷就ok了。

這個廣播的名字叫做:android.intent.action.HEADSET_PLUG

注意,在manifest.xml裡面要添加響應的權限:

1)...<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

注意,廣播要在java檔案中動态注冊。

2)...注冊廣播 onCreate() | | onResume()

  //給廣播綁定響應的過濾器  

        IntentFilter intentFilter = new IntentFilter(); 

        intentFilter.addAction("android.intent.action.HEADSET_PLUG"); 

        HeadsetReceiver headsetReceiver = new HeadsetReceiver(); 

        registerReceiver(headsetReceiver, intentFilter);

3)....處理廣播  public class HeadsetReceiver extends BroadcastReceiver {

        @Override 

        public void onReceive(Context context, Intent intent) { 

            if (intent.hasExtra("state")) { 

                if (0 == intent.getIntExtra("state", 0)) { 

                    Toast.makeText(context, "耳機未插入", Toast.LENGTH_SHORT).show(); 

                } else if (1 == intent.getIntExtra("state", 0)) { 

                    Toast.makeText(context, "耳機已插入", Toast.LENGTH_SHORT).show(); 

                } 

            } 

        } 

    }