1
我有一個可以接收二進制短信並處理它們的java卡小程序。現在我需要檢查他們是否來自特定的短號碼。當我在小程序中收到二進制格式的短信時,如何獲得短號碼
這就是我所做的
case EVENT_FORMATTED_SMS_PP_ENV:{
final EnvelopeHandler eh = EnvelopeHandler.getTheHandler();
short sd_len = eh.getSecuredDataLength();
short sd_offset = eh.getSecuredDataOffset();
byte[] tmpData = new byte[10];
short dataLen = 0;
if (eh.findTLV(ToolkitConstants.TAG_ADDRESS, (byte) 1) != ToolkitConstants.TLV_NOT_FOUND) {
dataLen = eh.getValueLength();
eh.copyValue((short)0,tmpData,(short)0,(short)dataLen);
}
actions.showNumberBuffer(tmpData, (short)dataLen);
break;
}
我成功接收地址,但它會從短號碼,發送二進制SMS 也許一些其他的方式來獲得短號碼不同?
發件人的地址稱爲TPOA在ETSI的說法(代表傳輸協議的起始地址)。嘗試尋找這個標籤。 – takumar
@takumar感謝您的評論,我使用sim.toolkit包,並且在此包中沒有像TPOA這樣的常量 – Greenisha
地址與預期值有什麼不同?這不是編碼問題嗎?有時編碼會令人不安。 – takumar