发送短信的关键程序是通过SmsManager对象的sendTextMessage()方法来完成;其中sendTextMessage()方法需要传入5个值,依次是收件人地址,发送地址,短信内容,发送服务,与送达服务 其中收件人与短信内容上不可以为null;
有码有真相:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
......此处省略一点
mButton.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String strDestAddress = mPhone.getText().toString();
String strMessage = mContent.getText().toString();
/* 构建一取得default instance的SmsManager对象 */
SmsManager smsManager = SmsManager.getDefault();
if (iswithin70(strMessage) == true) {
try {
PendingIntent mPI = PendingIntent.getBroadcast(
MessageActivity.this, 0, new Intent(), 0);
smsManager.sendTextMessage(strDestAddress, null,
strMessage, mPI, null);
} catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(MessageActivity.this, "发送成功",
Toast.LENGTH_SHORT).show();
}
}
private boolean iswithin70(String msg) {.......}//判断短信内容是否超70个字, 因为GSM的规范是一条短信内容不得超过70个Unicode16 文字
注:SmsManager类中可使用的3种方法
1.sendDataMessage发送Data格式的SMS传送到特定程序的Prot;2.sendMultipartTextMessage发送多条短信;3.sendTextMessage发送文字短信