Android Radio2.0——电台动态列表(六)
前面文章已经介绍了自动搜索的功能,但是比较依赖底层的接口,对于不依赖等层接口的修改,如何实现自动搜索功能呢?这里我们来看一下能不能通过现有的功能实现一个自动搜索获取有效电台列表的功能。大致思路如下:
1)通过 getDynamicProgramList() 方法获取动态列表。
2)按照动态列表的内容,循环调用 scan() 方法执行向上调台,直到列表中的内容搜索完成。
3)根据 RadioManager.ProgramInfo.getSignalStrength() 判断信号质量,生成一个有效电台列表。
4)回调监听扫描状态及有效电台列表的变化。
可以看到,这里的关键就是 getDynamicProgramList() 方法获取电台的动态列表,所以这里我们就来先分析一下电台动态列表的获取流程。虽然前面我们介绍过 Android 9.0 获取流程,这里我们还是来看一下在 Android 11 中的获取流程。
一、接口介绍
通过前面的文章分析,这个动态列表我认为就是生产厂商配置的一个该区域所有电台的列表,我们调台的过程就是一个个的查看对应列表中的电台频率是否可以正常播放。
1、RadioTuner
源码位置:/frameworks/base/core/java/a