android中可以通过两种方式发送短信

第一:调用系统短信接口直接发送短信;主要代码如下:
/** * 直接调用短信接口发短信 * @param phoneNumber * @param message */public void sendSMS(String phoneNumber,String message){//获取短信管理器 android.telephony.SmsManager smsManager = android.telephony.SmsManager.getDefault();//拆分短信内容(手机短信长度限制)  List<String> divideContents = smsManager.divideMessage(message); for (String text : divideContents) {  smsManager.sendTextMessage(phoneNumber, null, text, sentPI, deliverPI);  }}


第二:调起系统发短信功能;主要代码如下:
/** * 调起系统发短信功能 * @param phoneNumber * @param message */public void doSendSMSTo(String phoneNumber,String message){if(PhoneNumberUtils.isGlobalPhoneNumber(phoneNumber)){Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:"+phoneNumber));          intent.putExtra("sms_body", message);          startActivity(intent);}}


别忘了权限:
<uses-permission android:name="android.permission.SEND_SMS" />

这里主要讲解第一种方法,第一种方法可以监控发送状态和对方接收状态。

处理返回的发送状态:
//处理返回的发送状态 String SENT_SMS_ACTION = "SENT_SMS_ACTION";Intent sentIntent = new Intent(SENT_SMS_ACTION);PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, sentIntent,        0);// register the Broadcast Receiverscontext.registerReceiver(new BroadcastReceiver() {    @Override    public void onReceive(Context _context, Intent _intent) {        switch (getResultCode()) {        case Activity.RESULT_OK:        Toast.makeText(context,        "短信发送成功", Toast.LENGTH_SHORT)        .show();        break;        case SmsManager.RESULT_ERROR_GENERIC_FAILURE:        break;        case SmsManager.RESULT_ERROR_RADIO_OFF:        break;        case SmsManager.RESULT_ERROR_NULL_PDU:        break;        }    }}, new IntentFilter(SENT_SMS_ACTION));


处理返回的接收状态 :
//处理返回的接收状态 String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";// create the deilverIntent parameterIntent deliverIntent = new Intent(DELIVERED_SMS_ACTION);PendingIntent deliverPI = PendingIntent.getBroadcast(context, 0,       deliverIntent, 0);context.registerReceiver(new BroadcastReceiver() {   @Override   public void onReceive(Context _context, Intent _intent) {       Toast.makeText(context,  "收信人已经成功接收", Toast.LENGTH_SHORT)  .show();   }}, new IntentFilter(DELIVERED_SMS_ACTION));


发送短信的参数说明:
smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)

-- destinationAddress:目标电话号码
-- scAddress:短信中心号码,测试可以不填
-- text: 短信内容
-- sentIntent:发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号 --> 后续处理 即,这个意图包装了短信发送状态的信息
-- deliveryIntent: 发送 -->中国移动 --> 中国移动发送成功 --> 返回对方是否收到这个信息 --> 后续处理 即:这个意图包装了短信是否被对方收到的状态信息(供应商已经发送成功,但是对方没有收到)。

更多相关文章

  1. Android(安卓)Intent 常见用法总结
  2. Android按返回键退出程序但不销毁
  3. Android(安卓)操作权限大全 (android.permission)
  4. 1.5 Android(安卓)入门实例 后台循环发短信
  5. Android发送短信
  6. android判断及处理设备是否支持Google服务
  7. Android(安卓)SystemUI 信号栏后添加信号图标
  8. Android短信发送器实现方法
  9. android 获取路径目录方法

随机推荐

  1. 构建Windows版的Android(安卓)SDK
  2. Android更新工具包
  3. android中的广播接收实现总结
  4. Android(安卓)通知栏——Notification
  5. Android中简单轻量级的数据缓存类库DCach
  6. Android(安卓)App调用MediaRecorder实现
  7. Android(安卓)Volley 网络请求框架图
  8. Android(安卓)7.0 ActivityManagerServic
  9. Android图片处理(Matrix,ColorMatrix) -
  10. Android(安卓)EditText 下换线颜色变换