Android 11.0 修复在录音机APK(SoundRecorder),录音时不受外部USB插拔影响
Posted 王睿丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 11.0 修复在录音机APK(SoundRecorder),录音时不受外部USB插拔影响相关的知识,希望对你有一定的参考价值。
路径:packages/apps/SoundRecorder/src/com/android/soundrecorder/SoundRecorder.java
思路:
- 根据常用方法,定位到录音机界面在 SoundRecorder.java
- 因为是插拔监听,所以怀疑是由广播接收器引起的,在SoundRecorder.java搜索 receiver
- 根据看到的SD Card这样的关键字样,于是搜索 SDCard 找到了四五个方法,然后分别在这几个方法里埋Log
- 根据打印,最后锁定在 registerExternalStorageListener(),在这个方法里可以看到一个广播接收器:mSDCardMountEventReceiver
- 最后根据分别打印里面接收器代码的执行顺序,看到最有可能导致问题产生的代码: mRecorder.delete(); 通过跟踪看到了这个方法不仅删除了录音文件同时他还停止了录音
- 注释掉 mRecorder.delete(); 即可。
private void registerExternalStorageListener()
if (mSDCardMountEventReceiver == null)
mSDCardMountEventReceiver = new BroadcastReceiver()
@Override
public void onReceive(Context context, Intent intent)
String action = intent.getAction();
if (action.equals(Intent.ACTION_MEDIA_EJECT))
++ // mRecorder.delete();
else if (action.equals(Intent.ACTION_MEDIA_MOUNTED))
mSampleInterrupted = false;
updateUi();
;
IntentFilter iFilter = new IntentFilter();
iFilter.addAction(Intent.ACTION_MEDIA_EJECT);
iFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);
iFilter.addDataScheme("file");
registerReceiver(mSDCardMountEventReceiver, iFilter);
开发者涨薪指南
48位大咖的思考法则、工作方式、逻辑体系
以上是关于Android 11.0 修复在录音机APK(SoundRecorder),录音时不受外部USB插拔影响的主要内容,如果未能解决你的问题,请参考以下文章
Android 11.0 修复在计算器APK(Calculator),按一次Backspace键会删掉两个字符
Android 11.0 修复Settings→wifi→添加网络→扫描二维码界面上下压缩