文档章节

Android短信的发送和接收监听

jdroid
 jdroid
发布于 2014/05/05 10:55
字数 295
阅读 6734
收藏 10
/**发送与接收的广播**/
	String SENT_SMS_ACTION = "SENT_SMS_ACTION";
	String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";

	private BroadcastReceiver sendMessage = new BroadcastReceiver() {

		@Override
		public void onReceive(Context context, Intent intent) {
			Log.i("TAG", "send。。" + intent.getAction() + "---" + getResultCode() + "---" + getResultData());
			//判断短信是否发送成功  
			switch (getResultCode()) {
			case Activity.RESULT_OK:
				Toast.makeText(context, "短信发送成功", Toast.LENGTH_SHORT).show();
				break;
			default:
				Toast.makeText(mContext, "发送失败", Toast.LENGTH_LONG).show();
				break;
			}
		}
	};

	private BroadcastReceiver receiver = new BroadcastReceiver() {
		@Override
		public void onReceive(Context context, Intent intent) {
			Log.i("TAG", "receiver。。" + intent.getAction() + "---" + getResultCode() + "---" + getResultData());
			//表示对方成功收到短信  
			Toast.makeText(mContext, "对方接收成功", Toast.LENGTH_LONG).show();
		}
	};

	/**  
	 * 参数说明  
	 * destinationAddress:收信人的手机号码  
	 * scAddress:发信人的手机号码   
	 * text:发送信息的内容   
	 * sentIntent:发送是否成功的回执,用于监听短信是否发送成功。  
	 * DeliveryIntent:接收是否成功的回执,用于监听短信对方是否接收成功。  
	 */
	private void sendSMS(String phoneNumber, String message) {
		// ---sends an SMS message to another device---  
		SmsManager sms = SmsManager.getDefault();

		// 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个字符 将这条短信拆成多条短信发送出去  
		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);
		}
	}


© 著作权归作者所有

共有 人打赏支持
jdroid
粉丝 16
博文 84
码字总数 23247
作品 0
海淀
《Android深入透析》之广播(Broadcast)

概述 在android中,Broadcast作为四大组件之一,被广泛的应用在android程序之间的数据传递。举一个大家都比较熟悉的例子来说明。在车上的时候大家都有收听广播的习惯,广播电台通过发送不同频...

朵朵和糖糖
2014/11/12
0
0
Android push (一):SMS push

Android push (一):SMS push 移动终端为了节省电量和网络流量,不再采用轮训服务器的方式来收集数据,而是在服务器有数据需要发送到终端时通知终端。我们称这种机制叫推送(push)。终端接...

LiSteven
2013/06/04
0
1
andriod-四大组件之广播Broadcast-短信的收发

我想几乎所有的安卓开发者,第一个接触到的四大组件之一就是activity,而我在之前的文章中也写过, 在activity里面getContext是大佬级别的存在(可以看前几章), 那么四大组件中的广播Broad...

九尾74
05/24
0
0
Android短信的发送和广播接收者实现短信的监听

Android短信的发送和广播接收者实现短信的监听 要注意Android清单中权限的设置以及广播的注册监听实现 以下就是 Android清单的XML AndroidManifest.xml 发送短息的主界面mian.xml和实现Activ...

yolinfeng
2015/06/06
0
0
BroadcastReceiver—使用(II)

广播接收者( BroadcastReceiver )用于接收广播 Intent ,广播 Intent 的发送是通过调用 Context.sendBroadcast() 、 Context.sendOrderedBroadcast() 来实现的。通常一个广播 Intent 可以被订...

zt1212
2012/10/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
26
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部