Android 信息SMS的管理及拦截

1、发送短信

a、获取SmsManager

b、创建PendingIntent对象

c、发送短信

权限:

<!-- 授予发送短信的权限 -->
	<uses-permission android:name="android.permission.SEND_SMS"/>
代码片段:

SmsManager sManager = SmsManager.getDefault();
// 创建一个PendingIntent对象
				PendingIntent pi = PendingIntent.getActivity(SendSms.this
					, 0, new Intent(), 0);
				// 发送短信
				sManager.sendTextMessage("电话号码"
					, null, "发送信息", pi, null);
2、拦截信息

a、建立一个广播

b、设置广播接收

c、屏蔽系统的信息接收

d、对信息进行简单解析显示

权限:

<!-- 授予发送短信的权限 -->
	<uses-permission android:name="android.permission.SEND_SMS"/>
代码片段:

public void onReceive(Context context, Intent intent)
	{
		// 当街收到短信时触发
		if (intent.getAction().equals(
			"android.provider.Telephony.SMS_RECEIVED"))
		{
			//取消广播(这行代码会让系统收不到短信)
			abortBroadcast();
			StringBuilder sb = new StringBuilder();
			//接收有SMS传过来的数据
			Bundle bundle = intent.getExtras();
			//判断是否有数据
			if (bundle != null)
			{				
				Object[] pdus = (Object[]) bundle.get("pdus");				
				SmsMessage[] messages = new SmsMessage[pdus.length];
				for (int i = 0; i < pdus.length; i++)
				{
					messages[i] = SmsMessage
						.createFromPdu((byte[]) pdus[i]);
				}				
				for (SmsMessage message : messages)
				{
					sb.append("短信来源:");					
					sb.append(message.getDisplayOriginatingAddress());
					sb.append("\n------短信内容------\n");
					sb.append(message.getDisplayMessageBody());
				}
			}
			Toast.makeText(context, sb.toString()
					,150000).show();
		}	
	}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值