使用具有锁定移位表的国家语言的SmsManager发送短信



我希望能够用具有国家语言锁定移位表的语言发送短信,例如土耳其语。

我的目标是能够用土耳其语发送一部分包含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$u00a5u20acu00e9u00f9u0131u00f2u00c7nu011eu011fru00c5u00e5u0394_" ...

此外,我还有一个函数,可以将字符串转换为包含该字符串的7位压缩GSM字母表表示。

我可以通过SmsManager实现我的目标吗?如果可以,如何实现

现在我用SmsManager的"divideMessage"函数来分割每条消息,然后用"sendMultipartTextMessage"函数发送,我知道我不能使用这个函数来实现我的目标,因为它们只支持字符串作为输入。

我对SmsManager一无所知,但您可以按照以下步骤操作;

根据国家语言转换表规范,首先必须将UDHI设置为0x40,表示您的消息有效载荷中有用户数据头(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您的其余消息内容

最新更新