0
点赞
收藏
分享

微信扫一扫

Android 打开飞行模式和拔出耳机时自动退出FM Radio应用

在觉 2022-02-04 阅读 38

// 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)

举报

相关推荐

0 条评论