首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

第3问:如何发送长短信

2012-02-05 
第3问:怎么发送长短信?如果直接使用MessageConnection send超过80个汉字的短信,会被截断。后来找到这个:htt

第3问:怎么发送长短信?
如果直接使用MessageConnection send超过80个汉字的短信,会被截断。

后来找到这个:http://www.cnblogs.com/jobs/archive/2008/10/12/445584.html
按照这里的做法,分段发送,接受到的内容只是一个框。

不知道这个思路错误,还是我的代码错误?

Java code
            byte[] header = new byte[6];            header[0] = 0x05;            header[1] = 0x00;            header[2] = 0x03;                                     //计算分段            int seg = msg.length() / 70;            if ((msg.length() % 70) > 0)                seg++;                                                            //分段发送            for(int i= 0; i< seg; i ++)            {                                            header[3] = (byte)i;                header[4] = (byte)seg;                                header[5] = (byte)(i + 1);                                String s = new String(header, 0, header.length);                                if (((i + 1) * 70) >  msg.length())                    s += msg.substring(i * 70, msg.length());                else                    s += msg.substring(i * 70, (i + 1) * 70 - 1);                //sendMessage函数应该没问题,小于80个字符的短信发送正常,使用的文本形式发送                comm_lib.sendMessage(s, phoneNumber.getString());            }




[解决办法]
对这个没研究 关注下
[解决办法]

手机中发?

不是所有的SP都支持这样做的。

[解决办法]
以前在一个移动接口上有过类似的经历,分多次发送,不够sendMessage字节要求的凑够就可以了
[解决办法]
如果直接使用MessageConnection send超过80个汉字的短信,会被截断。 
-------------
也在关注这个问题,UP.
[解决办法]
引用楼主 CoolSlob 的帖子:
Java code
header[3] = (byte)i;
header[4] = (byte)seg;
header[5] = (byte)(i + 1);

String s = new String(header, 0, header.length); //我觉的这边出错了。这里的header转成String应该是 0500 03** **** ,s.length()应该为3,而你那个s 排列为 05 00 03 ×× ×× ×× ,长度是6了,改下就可以了。用hex转下就没问题了

热点排行