我希望能够以具有国家语言锁定班次表的语言发送短信,例如土耳其语。
我的目标是能够以土耳其语发送包含160个字符的短信。
我做了很多搜索,我发现有一个名为GsmAlphabet的课程,其中包括专门针对土耳其语的所有锁定班次表:
/* A.3.1 Turkish National Language Locking Shift Table
01.....23.....4.....5.....6.....7.....8.....9.....A.B.....C.....D.E.....F.....0.....1 */
"@\u00a3$\u00a5\u20ac\u00e9\u00f9\u0131\u00f2\u00c7\n\u011e\u011f\r\u00c5\u00e5\u0394_" ...
此外,我还有可以将String转换为包含的字节数组的函数 字符串的7位打包GSM字母表示。
我可以通过SmsManager实现我的目标,如果是,怎么做?
现在,我正在使用SmsManager" divideMessage"来分割每条消息。函数,然后发送" sendMultipartTextMessage"功能, 我知道我不能将此功能用于我的目标,因为它们只支持字符串作为输入。
答案 0 :(得分:1)
我对SmsManager没有任何线索,但您可以按照以下步骤操作;
根据National Language Shift Table规范,首先必须将UDHI设置为0x40,表明您的消息在消息有效负载中有User Data Header(UDH)
将UDH置于消息有效负载的开头,如:0x03 0x25 0x01 0x01
0x03 -> UDH length (in this case 3 octet)
0x25 -> IEI indicates that header is National Language Locking Shift
0x01 0x01 -> is for the Turkish Language
因此您的整体信息将如下: 0x03 0x25 0x01 0x01 其余的留言内容..