转载:http://ziyu-1.iteye.com/blog/1013932

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

第一:调用系统短信接口直接发送短信;主要代码如下:

Java代码
  1. //直接调用短信接口发短信
  2. SmsManagersmsManager=SmsManager.getDefault();
  3. List<String>divideContents=smsManager.divideMessage(content);
  4. for(Stringtext:divideContents){
  5. smsManager.sendTextMessage("150xxxxxxxx",null,text,sentPI,deliverPI);
  6. }



第二:调起系统发短信功能;主要代码如下:

Java代码
  1. Uriuri=Uri.parse("smsto:10010");
  2. Intentit=newIntent(Intent.ACTION_SENDTO,uri);
  3. it.putExtra("sms_body","102");
  4. activity.startActivity(it);



这里主要讲解第一种方法,其中大部分信息来源于互联网

1.获取短信管理器

Java代码
  1. SmsManagersmsManager=SmsManager.getDefault();



2.拆分短信内容(手机短信长度限制)

Java代码
  1. List<String>divideContents=smsManager.divideMessage(content);



3.发送拆分后的内容

Java代码
  1. List<String>divideContents=smsManager.divideMessage(content);
  2. for(Stringtext:divideContents){
  3. smsManager.sendTextMessage("150xxxxxxxx",null,text,sentPI,deliverPI);
  4. }



4.处理返回的发送状态

Java代码
  1. StringSENT_SMS_ACTION="SENT_SMS_ACTION";
  2. IntentsentIntent=newIntent(SENT_SMS_ACTION);
  3. PendingIntentsentPI=PendingIntent.getBroadcast(context,0,sentIntent,
  4. 0);
  5. //registertheBroadcastReceivers
  6. context.registerReceiver(newBroadcastReceiver(){
  7. @Override
  8. publicvoidonReceive(Context_context,Intent_intent){
  9. switch(getResultCode()){
  10. caseActivity.RESULT_OK:
  11. Toast.makeText(context,
  12. "短信发送成功",Toast.LENGTH_SHORT)
  13. .show();
  14. break;
  15. caseSmsManager.RESULT_ERROR_GENERIC_FAILURE:
  16. break;
  17. caseSmsManager.RESULT_ERROR_RADIO_OFF:
  18. break;
  19. caseSmsManager.RESULT_ERROR_NULL_PDU:
  20. break;
  21. }
  22. }
  23. },newIntentFilter(SENT_SMS_ACTION));



5.处理返回的接收状态

Java代码
  1. StringDELIVERED_SMS_ACTION="DELIVERED_SMS_ACTION";
  2. //createthedeilverIntentparameter
  3. IntentdeliverIntent=newIntent(DELIVERED_SMS_ACTION);
  4. PendingIntentdeliverPI=PendingIntent.getBroadcast(context,0,
  5. deliverIntent,0);
  6. context.registerReceiver(newBroadcastReceiver(){
  7. @Override
  8. publicvoidonReceive(Context_context,Intent_intent){
  9. Toast.makeText(context,
  10. "收信人已经成功接收",Toast.LENGTH_SHORT)
  11. .show();
  12. }
  13. },newIntentFilter(DELIVERED_SMS_ACTION));




发送短信的参数说明

Java代码
  1. smsManager.sendTextMessage(destinationAddress,scAddress,text,sentIntent,deliveryIntent)


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

更多相关文章

  1. Android(安卓)在软件安装后让某段代码只执行一次的方法
  2. Android(安卓)近百个项目的源代码,覆盖Android开发的每个领域
  3. Android(安卓)Studio:为Android定制的IDE
  4. android字体
  5. Android(安卓)的一些比较好的开源代码项目
  6. Android(安卓)系统应用调用,intent 的使用方法总结
  7. Android(安卓)Studio 快捷键
  8. 【Android开发】android最全的颜色对应的16进制代码(androidUI设
  9. 开源 android 文件管理器

随机推荐

  1. android launcher开发之图标背景以及默认
  2. android 解析xml
  3. Android可滑动的Tab页
  4. Android判断网线连接
  5. Android Studio遇到Installation failed
  6. android 中使用sqLite例子
  7. android中 sqlite sql操作
  8. Android必备软件
  9. Android(安卓)小项目之--解析如何获取SDC
  10. Android API开发之OpenGL开发之Android O