很多人认为一条短信是70个字, 超过70个字就是长短信, 会分多次发送, 其实这个看法是片面的, 理由如下:
对于不是长短信, 如果是中文的, 就是70个字, 如果是英文的, 是160字. 中英文混合, 按中文算;
如果是中文长短信, 那么就不是每条70个字了, 因为分割长短信的协议字符也是占空间的, 所以每条短信的字数是少于70字的;
安卓的ArrayList SmsManager.getDefault().divideMessage(String)方法可以智能分割长短信, 详细用法见我的上一条博客: Android发短信代码
要想动态地反应短信中的字数的具体情况, 可以参考以下代码: 在输入短信的编辑框增加addTextChangedListener()方法, 并在相应的地方写下:
//body代表输入的部分
int count[4]=SmsMessage.calculateLength(body,false);
//返加的数组中:
//count[0]表示将被分割为多少条短信
//count[1]表示已经输入的字数
//count[2]表示还剩多少个字就要加多一条短信
//count[3]输入中文的时候是3, 输入英文的时候是1,
//具体意义请自行查文档