public class

KddiPacketSmsDataConvertor

extends Object
java.lang.Object
   ↳ com.kddi.android.internal.telephony.cdma.sms.KddiPacketSmsDataConvertor

Class Overview

When packetSMS is sent, this class encodes the message. And the response from the server is analyzed.

Summary

Constants
int KDDI_CHANGE_CODE_MODE_CMAIL change code mode(Pictchar code -> Cmail code)
int KDDI_CHANGE_CODE_MODE_PICTCHAR change code mode(Cmail code -> Pictchar code)
String KDDI_PACKETSMS_CHAR_CODE +Kelvin@110608, hTC customization for Emoji Start ** static public final String KDDI_PACKETSMS_CHAR_CODE = "SJIS"; /** modify
Public Constructors
KddiPacketSmsDataConvertor()
Constructor of KDDIPacketSmsDataConvertor
Public Methods
static int kddiCalculateMsgSize(String msg)
calculate message body size.
static byte[] kddiChangeCmailPictCharCode(byte[] message, int changeMode)
+[hTC]Kelvin, remove KDDI original codes Start ** public static byte[] kddiChangeCmailPictCharCode(byte[] message, int changeMode) { // Pictchar Herat Cup Telephone Watch byte[][] PictChar = {{(byte)0xF7, (byte)0xB2}, {(byte)0xF7, (byte)0xB4}, {(byte)0xF7, (byte)0xB3}, {(byte)0xF7, (byte)0xB1}}; // Cmail code byte[][] MailChar = {{(byte)0x86, (byte)0xB2}, {(byte)0x86, (byte)0xB3}, {(byte)0x86, (byte)0xB4}, {(byte)0x86, (byte)0xB5}}; byte[][] SrcCode = new byte[4][2]; // bfore code byte[][] DstCode = new byte[4][2]; // after code byte[] changedCode = new byte[message.length]; // return data int c = 0; int i = 0; if (KDDI_OUTPUT_LOG) { Log.v(KDDI_TAG, "changePictCharCode Start[change mode ="+changeMode+"]"); } // Parameter check if(null == message) { if (KDDI_OUTPUT_LOG) { Log.d(KDDI_TAG, "illegal param [message is null]"); } return null; } // Create character code table switch(changeMode) { case KDDI_CHANGE_CODE_MODE_CMAIL: // Pictchar code -> Cmail code for(i = 0; i < 4; i++) { for(c = 0; c < 2; c++) { SrcCode[i][c] = PictChar[i][c]; DstCode[i][c] = MailChar[i][c]; } } break; case KDDI_CHANGE_CODE_MODE_PICTCHAR: // Cmail code -> Pictchar code for(i = 0; i < 4; i++) { for(c = 0; c < 2; c++) { SrcCode[i][c] = MailChar[i][c]; DstCode[i][c] = PictChar[i][c]; } } break; default: if (KDDI_OUTPUT_LOG) { Log.d(KDDI_TAG, "illegal param [changeMode is illegal]"); } return null; } // Change code for(i = 0; i < message.length; i++) { // check flag boolean nChkFlg = false; if(KDDI_CHANGE_CODE_MODE_CMAIL == changeMode) { // Pictchar code -> Cmail code if(((byte)0xF7 == message[i]) && (((byte)0xB1 <= message[i+1]) || ((byte)0xB4 >= message[i+1]))) { // peculiar character nChkFlg = true; } } else { // Cmail code -> Pictchar code nChkFlg = true; } if(true == nChkFlg) { // Heart if((message[i] == SrcCode[0][0]) && (message[i+1] == SrcCode[0][1])) { changedCode[i] = DstCode[0][0]; changedCode[i+1] = DstCode[0][1]; i++; continue; } // Cup if((message[i] == SrcCode[1][0]) && (message[i+1] == SrcCode[1][1])) { changedCode[i] = DstCode[1][0]; changedCode[i+1] = DstCode[1][1]; i++; continue; } // Telephone if((message[i] == SrcCode[2][0] ) && (message[i+1] == SrcCode[2][1])) { changedCode[i] = DstCode[2][0]; changedCode[i+1] = DstCode[2][1]; i++; continue; } // Watch if((message[i] == SrcCode[3][0]) && (message[i+1] == SrcCode[3][1])) { changedCode[i] = DstCode[3][0]; changedCode[i+1] = DstCode[3][1]; i++; continue; } } // 1byte copy changedCode[i] = message[i]; boolean bResult = kddiIsSJIS(message, i); if(true == bResult) { i++; // 1byte copy changedCode[i] = message[i]; } if(( i + 1 ) == (message.length - 1)){ i++; changedCode[i] = message[i]; } } if (KDDI_OUTPUT_LOG) { Log.v(KDDI_TAG, "changePictCharCode end"); } return changedCode; } -[hTC]Kelvin, remove KDDI original codes Start
static String kddiCreateSendMessage(String dest, String msg, int sendMode)
Send message is converted into the IRC format
static int kddiParseRetcode(byte[] result)
The response from the server is analyzed
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int KDDI_CHANGE_CODE_MODE_CMAIL

change code mode(Pictchar code -> Cmail code)

Constant Value: 0 (0x00000000)

public static final int KDDI_CHANGE_CODE_MODE_PICTCHAR

change code mode(Cmail code -> Pictchar code)

Constant Value: 1 (0x00000001)

public static final String KDDI_PACKETSMS_CHAR_CODE

+Kelvin@110608, hTC customization for Emoji Start ** static public final String KDDI_PACKETSMS_CHAR_CODE = "SJIS"; /** modify

Constant Value: "kddi-emoji"

Public Constructors

public KddiPacketSmsDataConvertor ()

Constructor of KDDIPacketSmsDataConvertor

Public Methods

public static int kddiCalculateMsgSize (String msg)

calculate message body size.

Parameters
msg message body
Returns
  • the length of message. (bytes)

public static byte[] kddiChangeCmailPictCharCode (byte[] message, int changeMode)

+[hTC]Kelvin, remove KDDI original codes Start ** public static byte[] kddiChangeCmailPictCharCode(byte[] message, int changeMode) { // Pictchar Herat Cup Telephone Watch byte[][] PictChar = {{(byte)0xF7, (byte)0xB2}, {(byte)0xF7, (byte)0xB4}, {(byte)0xF7, (byte)0xB3}, {(byte)0xF7, (byte)0xB1}}; // Cmail code byte[][] MailChar = {{(byte)0x86, (byte)0xB2}, {(byte)0x86, (byte)0xB3}, {(byte)0x86, (byte)0xB4}, {(byte)0x86, (byte)0xB5}}; byte[][] SrcCode = new byte[4][2]; // bfore code byte[][] DstCode = new byte[4][2]; // after code byte[] changedCode = new byte[message.length]; // return data int c = 0; int i = 0; if (KDDI_OUTPUT_LOG) { Log.v(KDDI_TAG, "changePictCharCode Start[change mode ="+changeMode+"]"); } // Parameter check if(null == message) { if (KDDI_OUTPUT_LOG) { Log.d(KDDI_TAG, "illegal param [message is null]"); } return null; } // Create character code table switch(changeMode) { case KDDI_CHANGE_CODE_MODE_CMAIL: // Pictchar code -> Cmail code for(i = 0; i < 4; i++) { for(c = 0; c < 2; c++) { SrcCode[i][c] = PictChar[i][c]; DstCode[i][c] = MailChar[i][c]; } } break; case KDDI_CHANGE_CODE_MODE_PICTCHAR: // Cmail code -> Pictchar code for(i = 0; i < 4; i++) { for(c = 0; c < 2; c++) { SrcCode[i][c] = MailChar[i][c]; DstCode[i][c] = PictChar[i][c]; } } break; default: if (KDDI_OUTPUT_LOG) { Log.d(KDDI_TAG, "illegal param [changeMode is illegal]"); } return null; } // Change code for(i = 0; i < message.length; i++) { // check flag boolean nChkFlg = false; if(KDDI_CHANGE_CODE_MODE_CMAIL == changeMode) { // Pictchar code -> Cmail code if(((byte)0xF7 == message[i]) && (((byte)0xB1 <= message[i+1]) || ((byte)0xB4 >= message[i+1]))) { // peculiar character nChkFlg = true; } } else { // Cmail code -> Pictchar code nChkFlg = true; } if(true == nChkFlg) { // Heart if((message[i] == SrcCode[0][0]) && (message[i+1] == SrcCode[0][1])) { changedCode[i] = DstCode[0][0]; changedCode[i+1] = DstCode[0][1]; i++; continue; } // Cup if((message[i] == SrcCode[1][0]) && (message[i+1] == SrcCode[1][1])) { changedCode[i] = DstCode[1][0]; changedCode[i+1] = DstCode[1][1]; i++; continue; } // Telephone if((message[i] == SrcCode[2][0] ) && (message[i+1] == SrcCode[2][1])) { changedCode[i] = DstCode[2][0]; changedCode[i+1] = DstCode[2][1]; i++; continue; } // Watch if((message[i] == SrcCode[3][0]) && (message[i+1] == SrcCode[3][1])) { changedCode[i] = DstCode[3][0]; changedCode[i+1] = DstCode[3][1]; i++; continue; } } // 1byte copy changedCode[i] = message[i]; boolean bResult = kddiIsSJIS(message, i); if(true == bResult) { i++; // 1byte copy changedCode[i] = message[i]; } if(( i + 1 ) == (message.length - 1)){ i++; changedCode[i] = message[i]; } } if (KDDI_OUTPUT_LOG) { Log.v(KDDI_TAG, "changePictCharCode end"); } return changedCode; } -[hTC]Kelvin, remove KDDI original codes Start

public static String kddiCreateSendMessage (String dest, String msg, int sendMode)

Send message is converted into the IRC format

Parameters
dest Destination address
msg Message body
sendMode Send mode identifier
Returns
  • IRC format, or null at the error.

public static int kddiParseRetcode (byte[] result)

The response from the server is analyzed

Parameters
result Response from the server
Returns
  • resultcode Result code notified the application is returned. When not possible to analyze, RESULT_ERROR_GENERIC_FAILURE is returned.