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();   
}  


http://blog.csdn.net/hejianhua/article/details/6309410


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值