smsManager.sendTextMessage(strDestAddress, null, strMessage, null, null);
我用上面的方式发送短信,会受到两条一样的短信。我把上面的代码换成
byte[] data = strMessage.getBytes();
smsManager.sendDataMessage(strDestAddress, null, (short) 80, data,null, null);
就只受到一条短信。这是什么原因。其它代码都不变咋会出现这样的情况哦。我想自己写程序发送短信,但是第二种方法发送中文又会出现乱码。这个问题困扰了我很久了。 有人做过这方面的没有哦。帮帮忙啊。

解决方案 »

  1.   

    我加上pi那个参数还是不行。
    SmsManager smsManager = SmsManager.getDefault();
    try
    {
     myInt++;
     PendingIntent mPI = PendingIntent.getBroadcast(context,0,new Intent(), 0);
     smsManager.sendTextMessage(myStr[1], null, myStr[2], mPI, null);
     TenderSmsDB tenderSmsDB = new TenderSmsDB(context);
     tenderSmsDB.insert(myStr[1], myStr[2], 1);
    }catch(Exception e)
    {
     Toast.makeText(context,"失败:"+myInt,Toast.LENGTH_LONG).show();
    }
    Toast.makeText(context,"成功:"+myInt,Toast.LENGTH_LONG).show();
    Toast只会弹出一次(成功1),但是还是会发送两条出去,我的测试真机是G4。
      

  2.   

    不太懂怎么调用的。可以去看下encodeing的格式吧,一个是base64的,一个是QP的。QP是不出错的,base64是可能出错的。