RIL-Java is essentially a RIL proxy that plays a forwarding role and is the starting point of the phone system in the Android Java concept space. In the analysis of RIL-D, we know that RILD has established a listening socket, waiting for the connection of RIL-Java. Once the connection is successful, RIL-JAVA can initiate a request, wait for a response, and send the structure to the target handler. In RIL-Java, this request is called RILRequest. For the sake of intuition, I still take the trouble to give the framework diagram of RIL-Java.
(1) Command Interface
In the ril.java source code, we can see that the RIL-JAVA object provides the following Command Interface:
…
getlccCardStatus
getCurrrentCalls
dial
acceptCall
rejectCall
sendDTMF
sendSMS
setupDataCall
setRadioPower
…
Why define these interfaces? This function interface is not fabricated out of thin air. These are descriptions of the basic functions of the phone, and are abstractions of Modem AT commands. Most Modems provide interfaces according to communication protocols. If we are not familiar with communication protocols, please refer to the relevant documents of 3GPP and the SPEC description of the Modem we use.
V.25ter AT Commands
3GPP 07.07 AT Comamnds-General commands
3GPP 07.07 AT Comamnds-Call Control commans
3GPP 07.07 AT Comamnds-Network Service related commands
3GPP 07.07 AT Comamnds-MT control and status command
3GPP 07.07 AT Comamnds-GPRS Commands
3GPP 07.07 Mobile Termination Errors
3GPP 07.05 SMS AT Commands