一、RIL的定义
RIL,全称为Radio Interface Layer;是Telephony和Modem之间的抽象层。用于实现上层Telephony和底层Modem之间的通信转换。其原因是Telephony和Modem实现通信功能的Command命令有所不同:Modem一般使用AT实现通信功能;同时,不同厂商之间的Modem实现方式也有所不同;为了更好地进行产业发展和技术升级维护,使用RIL这个统一的Interface就显得尤为必要了。
AP侧的请求Request Command,透过RILD前期注册在libreferenc-ril.so中的RIL_Evt事件,转化为AT command。
以Dial中的hangup/Waiting/reject动作为例:
客户端发送给BP Modem的指令,其接口有各个手机厂商Vendor实现;
hardware\ril\include\telephony\Ril.h
typedef struct {
int version; //Rild版本
RIL_RequestFunc onRequest; //AP请求接口
RIL_RadioStateRequest onStateRequest;//BP状态查询
RIL_Supports supports;
RIL_Cancel onCancel;
RIL_GetVersion getVersion;//动态库版本
} RIL_RadioFunctions;