AndroidFM模組學習之五關閉FM流程

來源:互聯網
上載者:User

標籤:android   fm   

    前一陣子簡單描述了一些關於FM開啟、錄音和搜尋的流程,淺析了一下各個類的源碼,接下來就是關閉FM了,FM模組的學習就告一段落了,希望這陣子的整理能對大家在FM的瞭解上有一定協助,如果大家在修改FM模組的上層代碼時遇到了問題或BUG,可以留言,我們共同來處理。

     FM關閉有兩種方式,一種是拔出耳機,FM關閉,另一種是按關閉按鈕。

    請看第一種方式:

流程圖:

     FmRadioService類中,使用者直接拔出耳機會接收到一個,耳機拔出廣播Intent.ACTION_HEADSET_PLUG當耳機被拔出後 mHeadsetPlugged =(intent.getIntExtra("state", 0) == 1); 取零。然後使用mHandler.post(mHeadsetPluginHandler);重新整理耳機狀態。調用fmOff();fmOff()調用stopFM()方法關閉fm接收的訊號裝置,調用FMRecevice的disable()方法關閉調頻裝置。調用mCallbacks.onDisabled();IFMRadioServiceCallbacks中的onDisabled()發一個handler,mHandler.post(mRadioDisabled);關閉FMRadio的UI狀態等

cleanupTimeoutHandler();endSleepTimer();stopRecording();cancelSearch();enableRadioOnOffUI(false);

接下來請看第二種方式:

流程圖:

   當在FMRadio類介面手動關閉fm點擊關閉按鈕的時候,通過mOnOffButton監聽在回調方法mTurnOnOffClickListener中當fm播放的時候就可以手動關閉,通過發送handler mDisableRadioTask回調方法。mDisableRadioTask中調用disableRadio();方法。通過繼承存根類的類的引用調用FMRadioService中的fmOff();(mService.fmOff();),fmOff()調用stopFM()方法關閉fm接收的訊號裝置,調用FMRecevice的disable()方法關閉調頻裝置,調用enableRadioOnOffUI();更改FMRadio UI介面狀態。



AndroidFM模組學習之五關閉FM流程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.