Android 打开飞行模式和拔出耳机时自动退出FM Radio应用
// switch antenna should not impact audio focus status
mValueHeadSetPlug = (intent.getIntExtra(“state”, -1) == HEADSET_PLUG_IN) ? 0 : 1;
switchAntennaAsync(mValueHeadSetPlug);
+//{@TChip ZJ Add START
+if(mValueHeadSetPlug == 1 && mIsPowerUp )
+{
-
showToast(getString(R.string.toast_plugin_headphone_before_FM));
-
sHandler11.sendMessageDelayed(sHandler11.obtainMessage(MSG_EXIT_FM, FMRadioService.this),(long)
+1000);
+mFmServiceHandler.removeCallbacksAndMessages(null);
+stopFMFocusLoss(AudioManager.AUDIOFOCUS_LOSS);
+}
-
else
-
sHandler11.removeMessages(MSG_EXIT_FM);
+//TChip ZJ Add END
if (SHORT_ANNTENNA_SUPPORT) {
boolean isSwitch = (switchAntenna(mValueHeadSetPlug) == 0) ? true : false;
LogUtils.d(TAG, “onReceive.switch anntenna:isWitch:” + isSwitch);
@@ -380,7 +423,27 @@ public class FMRadioService extends Service implements FMRecorder.OnRecorderStat
LogUtils.d(TAG, “setFMViaBTController(false) succeeded!!”);
mUsingFMViaBTController = false;
enableFMAudio(true);
- } */else {
- } */
+//{@TChip ZJ Add START
+else if(Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(action)){
- boolean isAirPlaneMode = intent.getBooleanExtra("state",false);
- if(isAirPlaneMode){
- LogUtils.d(TAG, ">>>ACTION_AIRPLANE_MODE_CHANGED");
- if (mIsPowerUp) {
- showToast(getString(R.string.toast_fm_enter_airplane_mode));
- sHandler11.sendMessageDelayed(sHandler11.obtainMessage(MSG_EXIT_FM, FMRadioService.this),(long)1000);
- mFmServiceHandler.removeCallbacksAndMessages(null);
- stopFMFocusLoss(AudioManager.AUDIOFOCUS_LOSS);
- }
- }
+}
+//TChip ZJ Add END @}
+else {
LogUtils.w(TAG, “Error: undefined action.”);
}
LogUtils.d(TAG, “<<< FMRadioService.onReceive”);
@@ -1557,6 +1620,7 @@ public class FMRadioService extends Service implements FMRecorder.OnRecorderStat
filter.addAction(Intent.ACTION_SHUTDOWN);
filter.addAction(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
+filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);// TChip ZJ Add
filter.addAction(ACTION_SHUTDOWN_IPO);
寫在最后
最后我想說:對于程序員來說,要學習的知識內容、技術有太多太多,要想不被環境淘汰就只有不斷提升自己,從來都是我們去適應環境,而不是環境來適應我們!
這里附上上述的技術體系圖相關的幾十套騰訊、頭條、阿里、美團等公司2021年的面試題,把技術點整理成了視頻和PDF(實際上比預期多花了不少精力),包含知識脈絡 + 諸多細節,由于篇幅有限,這里以圖片的形式給大家展示一部分。
相信它會給大家帶來很多收獲:
上述【高清技術腦圖】以及【配套的架構技術PDF】可以點擊下面鏈接免費獲取
Android學習PDF+架構視頻+面試文檔+源碼筆記
91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)
當程序員容易,當一個優秀的程序員是需要不斷學習的,從初級程序員到高級程序員,從初級架構師到資深架構師,或者走向管理,從技術經理到技術總監,每個階段都需要掌握不同的能力。早早確定自己的職業方向,才能在工作和能力提升中甩開同齡人。
總結
以上是生活随笔為你收集整理的Android 打开飞行模式和拔出耳机时自动退出FM Radio应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图文大师印章简易制作
- 下一篇: linux进程流量检测,linux使用s