android stk流程,Android STK 实现
1.Android 結構圖
從圖中可以得到,查看方向,由MODEM向JAVA查看,MODEM會使用兩種方式給RIL.JAVA上報數據,分別是Unsolicitedand Terminal response Solicited(request/response) .在RIL.JAVA中常用的有
solicited response
1.RIL_REQUEST_STK_GET_PROFILE?用來GET PROFILE
2.RIL_REQUEST_STK_SET_PROFILE?設置PROFILE
3.RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND?用于發送SELECT ITEM 等
4.RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE?發送STKTERMINAL RESPONSE
5.RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM?能于從STK打CALL,通知JAVA界面,相關CALL的消息。
Unsolicited response
1.RIL_UNSOL_STK_SESSION_END?結束會話
2.RIL_UNSOL_STK_PROACTIVE_COMMAND?SETUP MENU 顯示STK的主菜單
3.RIL_UNSOL_STK_EVENT_NOTIFY?主要用于EVENT DOWNLOAD
4.RIL_UNSOL_STK_CALL_SETUP?打CALL后的相關通知消息。
上圖中的Baseband 一般由平臺廠商進行開發,根據ANDROID的開源默認的機制,可以使用AT COMMAND來操作MODEM,也有其它的廠商會進行自己的MODEM開發,來達到提高MODEM的速度和效率。但對于RIL.java這個抽象層來說,不管采用哪種類型的MODEM,上層都是一樣的,這樣便于更好的Porting.這大概也是ANDROID的魅力吧。
請求發到StkService.java,即telephonyservice,將二進制的流進行解析,得到對應的類的結構,并將請求發送給StkApplicationService.java.
最后,在上層應用界面對相關的消息進行響應,和用戶進行交互。
通過上面的圖可以知道,大部分STK的協議是在MODEM這邊實現的,比如Termianl Profile,USSD,SS,而在ANDROID上層,只對部分的協議進行了支持,主要是和用戶有交互的操作,比如DISPLAY TEXT。
在StkService.java主要進行了三項工作
1.Parsing binary stream from ril.java and packing the result tomessage, and then send the message toStkApplicationService.java.
2.Parsing the terminal response from UI(mainly means user side) tobinary stream and send the stream to modem via ril.java.
3.Providing the service for StkApplicationService.java andMaintaining the status of STK.
在StkService.java中還用到了狀態機,這個可以下次一起講述狀態機是怎么來解析BINARY STREAM.
PS:以上圖是基于ANDROID2.2,而ANDROID2.3在StkService.java這層變化較大,有興趣的朋友可以自己去查看,StkService.java變成CatService.java.
STK protocol refer to 3GPP 11.14,11.11, 51.011,31.101.
OK,今天就到這里面,累了,圖畫了半天,休息去了。有問題可以M我,大家相互交流下。
總結
以上是生活随笔為你收集整理的android stk流程,Android STK 实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 冯诺伊曼提出的计算机工作原理又称为,冯.
- 下一篇: Shape Estimation in