sim卡簡訊管理1、前言 對於sim卡的簡訊管理,其功能包含了將存在手機上的簡訊儲存到sim卡、將儲存位置設定為sim卡時自動將簡訊儲存到sim卡、將sim卡中的簡訊匯入到電話中、顯示sim卡的簡訊內容、刪除sim卡中的簡訊等功能。這裡重點講解顯示sim卡簡訊和將手機中的簡訊儲存到sim卡的原理以及sim卡簡訊的一個資料結構。 圖1 sim卡簡訊管理介面2、SIM 簡訊解析對於sim卡中儲存的簡訊,有兩種,一是接收的簡訊,二是發送的簡訊。在儲存簡訊的時候我們將簡訊的內容以及簡訊頭打包成pdu後儲存到sim卡上,根據不同類型打包後pdu的各不相同。下面分別來介紹接收和發送的簡訊結構。2.1 接收 接收的簡訊其打包成pdu調用MesageUtils的getDeliveryPdu方法。其結構如下所示:
| MTI |
接收者號碼長度 |
接收者號碼 |
編碼方式 |
時間 |
使用者資料 |
MTI ,用於表示使用者協議相關的資料頭,如表示當前是發送還是接收,以及是否有發送報告等等
接收者號碼長度 接收者號碼,這個比較簡單,就不再說明編碼方式,一般分為三種7bit 、8bit、16bit,其中7bit和16bit使用較多。時間,接收簡訊的時間使用者資料,簡訊內容2.2 發送對於發送的簡訊較接收的簡訊來說更簡單,打包成pdu使用SmsMessager的getSubmitPdu方法來打包,其結構如下所示
| MTI |
Tp-message-Reference |
目的號碼長度 |
目的號碼 |
Tp-protoclol-Identifer |
編碼方式是 |
使用者資料 |
與接收的簡訊相比,發送的pdu沒有將發送時間存入,然後多了一下協議字元標識
但總體功能來說大致相似所以大家可能在一些手機上會有存入發送的簡訊,然後其發送時間會隨著本機時間進行變化,原因在於發送的時間沒有存入到sim卡,而顯示的時候解析到事件沒有會使用本地時間來顯示,但由於本地時間是變化的所以就出現了上面的問題。3、 總結這裡可能讓大家失望的是沒有將介面是怎麼回事,之所以這樣做,由於介面上的顯示比較簡單,與phone中的簡訊顯示沒有什麼區別,不清楚的兄弟可以查看前面的簡訊介面相關文章。