在之前的文章中,介绍 RadioTuner 时看到了静音功能的接口,当时感觉跟其他接口差不多,就没有做详细分析,但是在后来看代码时发现并没有那么简单。这里我们就再来分析以下 Radio 的静音操作流程。
源码位置:/frameworks/base/core/java/android/hardware/radio/RadioTuner.java
- /**
- * 设置静音状态
- */
- public abstract int setMute(boolean mute);
-
- /**
- * 获取静音状态
- */
- public abstract boolean getMute();
这里只是一个接口,不做详细介绍了。
源码位置:/frameworks/base/core/java/android/hardware/radio/TunerAdapter.java
- @NonNull private final ITuner mTuner;
-
- class TunerAdapter extends RadioTuner {
- ......
- @Override
- public int setMute(boolean mute) {
- try {
- mTuner.setMuted(mute);
- } catch (IllegalStateException e) {
- return RadioManager.STATUS_ERROR;
- } catch (RemoteException e) {
- return RadioManager.STAT