Android OpenMobileAPI SEService模块总结

来源:互联网 发布:知乎 扶她出去吧 编辑:程序博客网 时间:2024/06/04 00:30

最近在做一个跟SIM卡交互的安卓APP写SIM卡的Dome,做了2个星期,现在是能跟SIM卡交互了,现在总结一下。
先推荐几个资料网站,
类说明文档
simalliance说明文档
github资料
下面就是一片关于写卡的一篇硕士论文
还有就是浏览Google网页的方法
开发前注意事项:
1.由于OpenMobileAPI jar包兼容性差,导致调试时经常出现问题,并且不是所有安卓版本都有该库,现在有 15 17 18 19 21版本的库,建议全部下载下来,如果不行直接替换库。
2.清单文件中引用系统的SEService服务。

<uses-library android:name="org.simalliance.openmobileapi" android:required="true"/>

与卡交互流程,如下图:
这里写图片描述
其中与卡交互时有两个地方需要输入参数:
1.打开逻辑通道时,输入AID;
2.与卡交互时,发送APDU。
其中APDU命令如果具备一些卡的相关知识就可以知道,但是AID不是这样的,AID是开发者与卡上协商后确定的。
(注,现在的SIM卡有JAVA卡和Native卡,并且这两种卡开发不一样)。
接下来就是按部就班的码代码,接下来总结一下出现的几种错误:
1. No APDU access allowed!
——与卡商协商,允许开发者操作卡的安全模块。
2. No PKCS#15 file!
——SIM卡缺少相关文件,需要卡商预制。
3. Applet not found!
——SIM已与应用建立通道,卡上缺少数据。
总而言之,只要通信不成功,一般都是卡上预置的数据不足。

3 0