欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

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

时间:2023-08-06

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

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

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。