ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-02-04 12:02:13  阅读:227  来源: 互联网

标签:sHandler11 ZJ LogUtils filter TAG Radio ACTION Android FM


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

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

标签:sHandler11,ZJ,LogUtils,filter,TAG,Radio,ACTION,Android,FM
来源: https://blog.csdn.net/m0_66264134/article/details/122782122

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有