上一篇内容到 BroadcastRadioService 调用 openTuner() 开启广播时调用不通的 Hal 层代码,这一篇来看一下,不通 Hal 层的代码有什么区别。
BroadcastRadioService
源码位置:/frameworks/base/services/core/java/com/android/server/broadcastradio/BroadcastRadioService.java
private final com.android.server.broadcastradio.hal1.BroadcastRadioService mHal1 = new com.android.server.broadcastradio.hal1.BroadcastRadioService();
private final com.android.server.broadcastradio.hal2.BroadcastRadioService mHal2 = new com.android.server.broadcastradio.hal2.BroadcastRadioService();
private class ServiceImpl extends IRadioService.Stub {
@Override
public ITuner openTuner(int moduleId, RadioManager.BandConfig bandConfig, boolean withAudio, ITunerCallback callback) throws RemoteException {
enforcePolicyAccess();
......
synchronized (mLock) {
if (mHal2.hasModule(moduleId)) {
return mHal2.openSession(modu