1. 程式人生 > >Android OpenMobileAPI SEService模組總結

Android OpenMobileAPI SEService模組總結

最近在做一個跟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已與應用建立通道,卡上缺少資料。
總而言之,只要通訊不成功,一般都是卡上預置的資料不足。