首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UCS-2支持android的0级sms

UCS-2支持android的0级sms
EN

Stack Overflow用户
提问于 2013-12-12 00:08:32
回答 1查看 1.1K关注 0票数 0

我正在寻找一种方式发送0类短信,而不干扰UCS-2编码。

线程Class 0 SMS (flash SMS) on Android中的答案似乎在干扰UCS-2编码,因为普通文本发送和接收良好,但是需要UCS-2编码的语言显示为垃圾字符。

也就是。

在发送时,

在这两种情况下

都收到了。

两者都是,第二个答案,stackoverflow.com.com/a/9424185/3082310

代码语言:javascript
复制
byte[] encodedMessage = pdus.encodedMessage;
// byte[0] = mtiByte
// byte[1] = TP Message Reference
// byte[2] = length of source phone
// byte[3..length] = phone
// protocol identifier
int msgLen = encodedMessage[2] / 2;
// +2 -> length of source phone
// +2 -> for 91 after the length
// +1 -> TP PID
int indexTPDCS = msgLen + 5;
byte TPDCS = encodedMessage[indexTPDCS];

byte[] changedMessage = encodedMessage.clone();
// Set bit 4 to 1 using OR (|), indicating there is a message class
// Set bit 0 and 1 to 0 using AND (&), indicating class 0
byte newTPDCS = (byte) ((TPDCS | 0x10) & 0xFC); // Flash SMS
changedMessage[indexTPDCS] = newTPDCS; // Class 0

还有,ZeroSMS,github.com/virtualabs/ZeroSMS

代码语言:javascript
复制
/* change class to Class 0 *
int size;
size = (int)pdus.encodedMessage[2];
size = (size/2) + (size%2);
pdus.encodedMessage[size+5] = (byte)0xF0;

似乎也有同样的结果。

对问题所在有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-13 13:28:26

似乎需要if-然后或开关-case语句:用于7位编码,如英文。

使用(byte)0xF0

对于16位编码,UCS-2编码。

使用(byte) 0x18

否则,如果输入不支持的语言,则会出现垃圾字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20532557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档