Stk相关
2017-03-09 10:40
106 查看
Stk概述
SIM Card Tool Kit; 指SIM卡开发工具包;如果是USIM卡,简称USIM。Stk的代码程序是写在SIM卡上的,所以Stk.apk完成的功能就是和卡程序通信。以Sim卡的容量大小可以想到stk的功能是比较弱的,最常见的stk功能应该就是开机的时候弹出的“欢迎使用联通”字样之类的dialog框,还有号簿管家,打开移动wap网络主页等等功能。
Stk的主界面和子界面全部是list,点击listitem发送相应命令到modem,依据modem回应做各种处理.例如要进子列表就加载子列表展示,是要显示某些信息就弹对话框提示,要输入某些东西就弹出输入框,要发送短信则直接使用framework层的类直接发送短信,要显示一个网页就跳转到浏览器。实际上modem的交互就是一个应答模式,通过at命令一问一答,stk只不过是提供一个UI方式供用户操作。每个命令的处理有超时时间,一般是30秒,超时没有应答后一般动作是返回上一层。
app代码简介
mtk的stk app代码在,注意不是packages/apps/Stk,高通的好像还使用原生的位置:/home/lgy/code/mtk6797/vendor/mediatek/proprietary/packages/apps/Stk
<application android:icon="@drawable/ic_launcher_sim_toolkit"
android:label="@string/app_name"
android:clearTaskOnLaunch="true"
android:process="com.android.phone"
android:taskAffinity="android.task.stk">AndroidManifest中可看到进程是运行在com.android.phone中,因为要使用telephony framework的代码。
StkAppInstaller
插入卡的时候显示stk,拔出卡的时候桌面不显示stk,这个功能是在StkAppInstaller中完成的:
private static void setAppState(Context context, boolean install, int sim_id) {
...
PackageManager pm = context.getPackageManager();
...
pm.setComponentEnabledSetting(cName, state, PackageManager.DONT_KILL_APP);
...
}使用PackageManager 的方法可以开启和禁用app,禁用后当然在桌面不显示,不仅不显示实际上被禁用的app代码都无法运行(就和没有安装apk一个表现)。这个实际上就是n多系统管家超级省电模式的原理。
StkAppService
stk中最核心的类,其余类都在该类的管理之下
StkCmdReceiver
StkAppService中使用,收stk相关广播
StkDialogActivity
对话框样式的Activity,用于弹出提示。例如开机弹框就是这个。
StkInputActivity
输入框样式的Activity,用于输入一些东西
StkMenuActivity
stk的界面,因为stk的所有UI都是一个列表,所以可以做成一个通用的activity。
framework代码简介
frameworks/opt/telephony/src/java/com/android/internal/telephony/cat/吐槽
对stk的代码基本没任何分析,因为这个实在是没啥好说的。作为功能机时代就有的功能,简陋至极的UI,缓慢的响应,孱弱的功能,在智能机时代已经不合时宜了。有测试同学提的bug,例如wap服务网页打不开,那是移动运营商就不维护那个网页了好不好,今天TM还有谁用wap上网啊。号簿管家有微信电话本好用嘛?运营商网上营业厅的app各大应用市场都有好不好。除了之前做运营商深度定制机今天还有哪个厂商要考虑stk。新开卡的同学应该发现不少4G的卡已经没有stk这个功能了,卡程序应该在不久就会推出历史舞台了。不仅是stk,原先通过Sim卡设置的呼叫转移等功能新出的4G卡大多已经无法通过通话设置进行设置了,只能通过网上营业厅。Stk代码也没有啥通用性,高通自己的代码,4.4.2的stk放到4.4.4就不能用了。大家要远离stk啊。
相关文章推荐
- android Stk 相关
- [导入][VB]RS和DBGrid的相关操作
- SAP相关名词不完全手册
- Linux下RAR安装及相关命令
- 相关颜色的十六进制值
- ARM7 LPC2103芯片相关寄存器设置总结
- LINUX下网卡的相关知识
- WPF-20:richtextbox相关操作(转)
- curl_setopt函数相关应用及介绍
- ossim安装phpmyadmin以及相关设置
- 气象项目—相关学习问题记录(一)
- 程序猿需要知道的相关知识
- 惯导相关书籍
- 学习android 笔记(4):如何获取屏幕的相关属性以及dp 、dip、dpi 、px的概念
- PHP 安全相关 简单知识
- 计算机相关基础概念[笔记]
- xml相关技术
- 图像相关(二) - System.Drawing.Bitmap 的使用
- C++程序员相关书籍推荐
- 与加密解密相关的一些内容