當用戶正在使用咱們產品裏提供的音樂播放器播放音樂時,用戶把耳機或者藍牙耳機接入後,過一下子,用戶又把耳機給拔除,或者斷開藍牙耳機的鏈接,咱們須要暫停播放音樂,定義一個BroadcastReceiver對象, 對於有線耳機,監聽Intent.ACTION_HEADSET_PLUG系統廣播,對於藍牙耳機,監聽BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED系統廣播android
1ide 2spa 3.net 4code 5對象 6事件 7ci 8get 9產品 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
這樣作能夠基本知足需求,但不完美,由於當拔出有線耳機時,播放器不會立刻暫停,要等上一秒鐘,纔會收到Android的系統廣播,
1 |
|
相關資料:從硬件層面來看,直接監聽耳機拔出事件不難,耳機的拔出和插入,會引發手機電平的變化,而後觸發什麼什麼中斷,
最終在stack overflow找到答案,監聽Android的系統廣播AudioManager.ACTION_AUDIO_BECOMING_NOISY, 可是這個廣播只是針對有線耳機,或者無線耳機的手機斷開鏈接的事件,監聽不到有線耳機和藍牙耳機的接入,但對於個人需求來講足夠了,監聽這個廣播就沒有延遲了,UI能夠當即響應
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|