之前也查了一些资料和博客,我在我的应用中加了一个用户反馈的界面,其实就是给我发一条短信。
具体代码如下。
/**
*@ 参数说明
* destinationAddress:收信人的手机号码
* scAddress:发信人的手机号码
* text:发送信息的内容
* sentIntent:发送是否成功的回执,用于监听短信是否发送成功。
* DeliveryIntent:接收是否成功的回执,用于监听短信对方是否接收成功。
*/
private void sendSMS(String message) {
Log.d(TAG,"sendSMS");
// ---sends an SMS message to another device---
SmsManager sms = SmsManager.getDefault();
String phoneNumber="15216184553";
// create the sentIntent parameter
Intent sentIntent = new Intent(SENT_SMS_ACTION);
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, sentIntent,0);
// create the deilverIntent parameter
Intent deliverIntent = new Intent(DELIVERED_SMS_ACTION);
PendingIntent deliverPI = PendingIntent.getBroadcast(this, 0,deliverIntent, 0);
//如果短信内容超过70个字符 将这条短信拆成多条短信发送出去
try{
if (message.length() > 70) {
ArrayList<String> msgs = sms.divideMessage(message);
for (String msg : msgs) {
sms.sendTextMessage(phoneNumber, null, msg, sentPI, deliverPI);
}
} else {
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliverPI);
}
dialog.show();
}catch(IllegalArgumentException e){
e.printStackTrace();
Log.e(TAG,"IllegalArgumentException");
}catch(Exception e){
Log.e(TAG,"Exception");
}
}
还有一个广播,当发送成功则提示OK.
private BroadcastReceiver sendMessage = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//判断短信是否发送成功
switch (getResultCode()) {
case Activity.RESULT_OK:
Toast toast=Toast.makeText(context, "您的意见已经提交成功,您的十分满意是我们的百倍追求!", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
dialog.dismiss();
edit_suggestion.setText("");
break;
default:
Log.i(TAG,"send message failed!");
break;
}
}
};
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//表示对方成功收到短信
Log.i(TAG,"receive message successful!");
}
};
当然,你在onCreate()方法中需要注册:
// 注册广播 发送消息
registerReceiver(sendMessage, new IntentFilter(SENT_SMS_ACTION));
registerReceiver(receiver, new IntentFilter(DELIVERED_SMS_ACTION));
做好这一切之后,基本实现了一个发短信的功能,当然你得有一个按钮来触发这个发短信的事件,这里就不说了。
除此之外,要加入发短信的权限在Manifest文件中
<uses-permission android:name="android.permission.SEND_SMS"/>
好了,效果如图:

安卓市场:http://apk.hiapk.com/html/2013/05/1468059.html?module=256&info=IWjtVg9cqVJLYg%3D%3D
N多市场:http://www.nduoa.com/apk/detail/553415
360手机助手:http://zhushou.360.cn/search/index/?kw=%E6%A0%A1%E5%9B%AD%E5%B0%8F%E5%8A%A9%E6%89%8B
百度应用:http://as.baidu.com/a/item?docid=3101724&pre=web_am_se
优亿市场(eoe):http://www.eoemarket.com/search/apps/?keyword=%E6%A0%A1%E5%9B%AD%E5%B0%8F%E5%8A%A9%E6%89%8B