android短信拦截
来源:互联网 发布:淘宝开店网址 编辑:程序博客网 时间:2024/04/29 10:59
自己写的用android短信拦截,实现输入手机号拦截该手机的短信的功能,可以作为参考,源码下载地址:http://download.csdn.net/detail/hc260164797/4387139
下面我来介绍一下该程序实现:
1.首先是主界面:
主界面代码:
package com.huangcheng.smscut;import android.app.Activity;import android.content.IntentFilter;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class SmsCut extends Activity {private EditText sms_num_edit;private Button yes_btn;private Button no_btn;private SmsRecevier recevier=null;private boolean isregiset = false;private static final String ACTION = "android.provider.Telephony.SMS_RECEIVED";/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);sms_num_edit = (EditText) findViewById(R.id.sms_number_edit);yes_btn = (Button) findViewById(R.id.yes_btn);no_btn = (Button) findViewById(R.id.no_btn);yes_btn.setEnabled(true);no_btn.setEnabled(false);yes_btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubregiset();yes_btn.setEnabled(false);no_btn.setEnabled(true);}});no_btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubunregiset();SmsCut.this.finish();}});}public void regiset() {IntentFilter filter = new IntentFilter(ACTION);filter.setPriority(1000);// 设置优先级最大recevier = new SmsRecevier(sms_num_edit.getText().toString().trim());registerReceiver(recevier, filter);isregiset = true;Toast.makeText(this, "开始拦截", 0).show();}public void unregiset() {if (recevier != null && isregiset) {unregisterReceiver(recevier);isregiset = false;Toast.makeText(this, "停止拦截,关闭程序", 0).show();} elseToast.makeText(this, "尚未设置,关闭程序", 0).show();}protected void onDestroy() {super.onDestroy();if (recevier != null && isregiset) {unregisterReceiver(recevier);isregiset = false;Toast.makeText(this, "停止拦截,关闭程序", 0).show();}}}
主要实现了:注册broadcastReceiver实现监听短信信息,就是
android.provider.Telephony.SMS_RECEIVEDBroadcastRecevier代码:
package com.huangcheng.smscut;import java.text.SimpleDateFormat;import java.util.Date;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.telephony.SmsManager;import android.telephony.SmsMessage;import android.util.Log;public class SmsRecevier extends BroadcastReceiver {private String num;public SmsRecevier(String number) {Log.v("TAG", "SmsRecevier create");num=number;}// 接受短信@Overridepublic void onReceive(Context context, Intent intent) {Log.v("TAG", "SmsRecevier onReceive");Object[] pdus = (Object[]) intent.getExtras().get("pdus");if (pdus != null && pdus.length > 0) {SmsMessage[] messages = new SmsMessage[pdus.length];for (int i = 0; i < pdus.length; i++) {byte[] pdu = (byte[]) pdus[i];messages[i] = SmsMessage.createFromPdu(pdu);}for (SmsMessage message : messages) {String content = message.getMessageBody();// 得到短信内容String sender = message.getOriginatingAddress();// 得到发信息的号码if (sender.equals(num)) {abortBroadcast();// 中止发送Log.e("TAG", "此号码为黑名单号码,已拦截!");}/* * * 回复信息需要用到Date date = new Date(message.getTimestampMillis());SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String sendContent = format.format(date) + ":" + sender + "--"+ content;SmsManager smsManager = SmsManager.getDefault();// 发信息时需要的smsManager.sendTextMessage("", null, sendContent, null, null);// 转发给Log.v("TAG", sendContent);*/}}}}该recevier实现了截断短信发送broadcastreceiver,可以转发短信并截断该短信发送。
对了,记得要设置BroadCastRecevier优先级,这样才能首先接听到,还有记得要申明权限:
<uses-permission android:name="android.permission.RECEIVE_SMS" /><!-- 接收短信权限 --><uses-permission android:name="android.permission.SEND_SMS" /><!-- 发送短信权限 --><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />就是这样,欢迎大家拍砖~~~~
- Android短信窃听器短信拦截
- Android拦截短信,接收短信
- Android 拦截短信配置
- android短信拦截
- Android 拦截短信配置
- android短信拦截
- Android-拦截接收短信
- 关于Android短信拦截
- android 短信拦截思路
- Android短信拦截
- android短信拦截
- android短信拦截优先级
- Android短信拦截
- android拦截短信
- android短信拦截
- Android短信拦截
- android拦截短信
- Android短信拦截
- c++ singleton(单例模式)
- 网页中播放flv视频的方法
- SQL中Left Join 与Right Join 与 Inner Join 与 Full Join的区别
- C++中引用传递与指针传递区别(进一步整理)
- 不学习就会落后
- android短信拦截
- 看老罗的演讲有感
- Linux 日志文件系统 详细介绍
- 深刻理解一下重载箭头操作符
- 将mdf文件导入sql server
- php的数组案例
- Iphone相关知识二
- 为什么 C 语言屹立不倒?
- 百度笔试题:malloc/free与new/delete的区别