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();
}
}
}
}