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