Перехват команд в SIM STK Menu
Мне нужно перехватить, какая команда отправляется, когда пользователь выбирает одну опцию в меню STK SIM-карты.
Я много искал и видел, что есть протокол RIL, но я пока не добился успеха.
В моем случае мне нужно знать команду для имитации проверки баланса сим-карты.
Я разрабатываю приложение, которое отправляет эту команду и обрабатывает полученное сообщение.
следующий журнал отображается в тот момент, когда я касаюсь опции "проверить баланс" в списке
06-11 09:29:27.388: D/CAT(944): CatService: 10arrived on slotid: 0
06-11 09:29:27.398: D/CAT(944): CatService: SEND_SMS
06-11 09:29:27.398: D/CAT(944): CatService: Sending CmdMsg: com.android.internal.telephony.cat.CatCmdMessage@41f6d030 on slotid:0
06-11 09:29:27.428: D/CAT(944): StkAppService: 1called on slot:0
06-11 09:29:27.428: D/CAT(944): StkAppService$ServiceHandler: SEND_SMS
06-11 09:29:28.700: D/PhoneInterfaceManager(944): Broadcasting intent ACTION_UNSOL_RESPONSE_OEM_HOOK_RAW
2 ответа
Команды двух типов могут быть отправлены на CP(модем), могут быть перехвачены в CatService.java
1) EVELOPE:
private void sendMenuSelection(int menuId, boolean helpRequired)
2) Ответ терминала:
private void sendTerminalResponse(CommandDetails cmdDet,
ResultCode resultCode, boolean includeAdditionalInfo,
int additionalInfo, ResponseData resp)
Для журнала, который вы разместили: Когда вы касаетесь опции "проверить баланс" в списке, некоторые ответы терминала (pdu) отправляются на модем, вы можете распечатать необработанный шестнадцатеричный байт, если вы заинтересованы.
06-11 09:29:27.388: D/CAT(944): CatService: 10arrived on slotid: 0
06-11 09:29:27.398: D/CAT(944): CatService: SEND_SMS
Когда модем получил Терминал соответственно, он отправляет SMS определенному оператору, и тогда вы можете получить сообщение о балансе. Обратите внимание, что SMS не отправлено с Android, оно вызывается Stk в модеме.