CDMA猫用AT命令发中文短信(C#)

2009年5月,搬迁自我的MSN SPACE

5月15日
【原创】CDMA猫用AT命令发中文短信(C#)
CDMA猫真是!@#¥#%(*,连PDU都不支持,只能发文本短信。而且发中文短信居然是UNICODE,无法在超级终端里输入。只能写程序。
网上这个问题谈论地比较多,做起来比较累,还偶尔会出乱码。还是将C#的成功代码帖一下吧。
转载请注明来源
void SendCHNSms(string content,string phone)
{
            //中文CDMA发送,UNICODE编码字节
            byte[] b = Encoding.BigEndianUnicode.GetBytes(content);
            //CDMA的AT命令手机号码前面不能加86,否则虽然显示成功发送,但短信中心回应错误代码5
            if(phone.IndexOf("86")==0)
            {
                phone = phone.Substring(2);
            }
            //假设是COM3口
            SerialPort sp = new SerialPort("com3");
            //和GSM猫不同,波特率是115200,这个问题困扰了很久的说
            sp.BaudRate = 115200;
            sp.Open();
            //设置中文短信
            sp.Write("AT+WSCL=6,4/r");
            Thread.Sleep(500);
             //设置文本格式短信
            sp.Write("AT+CMGF=1/r");
            Thread.Sleep(500);
             //设置发送的号码和发送内容字节长度
            sp.Write("AT+CMGS=/"" + phone + "/"," + b.Length + "/r");
            Thread.Sleep(500);
            //写入
            sp.Write(b, 0, b.Length);
            Thread.Sleep(500);
            //写入CTRL+Z结束短信内容,注意在UNICODE模式下需要两个字节,这个也是不能在超级终端下操作的原因
            byte[] b2 = new byte[] { 0x00, 0x1a };
            sp.Write(b2, 0, b2.Length);
            sp.Close();
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值