安卓手机短信拦截app制作

安卓手机短信拦截app通常分为两个部分,一个是接收短信的部分,另一个是拦截短信的部分。下面我将为您详细介绍这两个部分的实现原理。

1. 接收短信的部分

在安卓系统中,接收短信的部分需要用到BroadcastReceiver和ContentObserver。BroadcastReceiver是一种可以接收并响应系统广播消息的组件,ContentObserver则是监听数据变化的观察者。

具体实现流程如下:

首先需要在AndroidManifest.xml文件中注册BroadcastReceiver组件,如下:

```

```

其中,SmsReceiver为自定义的BroadcastReceiver类。

SmsReceiver类的实现如下:

```

public class SmsReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

if (intent.getAction().equals(Telephony.Sms.Intents.SMS_RECEIVED_ACTION)) {

Bundle bundle = intent.getExtras();

if (bundle != null) {

Object[] pdus = (Object[]) bundle.get("pdus");

for (Object pdu : pdus) {

SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdu);

String messageBody = smsMessage.getMessageBody();

String senderNum = smsMessage.getOriginatingAddress();

// 将短信内容和发送者号码传递给拦截部分进行处理

handleSms(context, messageBody, senderNum);

}

}

}

}

}

```

SmsReceiver类的实现主要是在onReceive方法中获取短信内容和发送者号码,然后将其传递给拦截部分进行处理。

2. 拦截短信的部分

在收到短信以后,拦截部分需要对短信内容进行处理,并决定是否拦截该短信。常见的短信拦截方式包括:

1)关键词过滤

通过对短信内容进行关键词匹配,如果匹配成功则拦截该短信。

2)黑名单拦截

如果短信发送者的号码在黑名单中,则拦截该短信。

3)白名单放行

如果短信发送者的号码在白名单中,则不拦截该短信。

具体实现流程如下:

在短信拦截应用中,可以通过SharedPreferences存储黑名单和白名单的信息。可以在设置界面中提供用户添加黑名单和白名单的按钮,并在处理短信时读取SharedPreferences中的信息。

```

public class SmsFilter {

// 判断是否在黑名单中

public static boolean inBlackList(Context context, String senderNum) {

SharedPreferences sp = context.getSharedPreferences("sms_filter", Context.MODE_PRIVATE);

String blacklist = sp.getString("blacklist", "");

return blacklist.contains(senderNum);

}

// 判断是否在白名单中

public static boolean inWhiteList(Context context, String senderNum) {

SharedPreferences sp = context.getSharedPreferences("sms_filter", Context.MODE_PRIVATE);

String whitelist = sp.getString("whitelist", "");

return whitelist.contains(senderNum);

}

// 判断短信内容是否包含关键词

public static boolean hasKeyword(Context context, String messageBody) {

SharedPreferences sp = context.getSharedPreferences("sms_filter", Context.MODE_PRIVATE);

String keyword = sp.getString("keyword", "");

return messageBody.contains(keyword);

}

}

```

然后在处理短信的方法中,调用上述方法判断是否拦截该短信。

```

public static void handleSms(Context context, String messageBody, String senderNum) {

boolean inBlackList = SmsFilter.inBlackList(context, senderNum);

boolean inWhiteList = SmsFilter.inWhiteList(context, senderNum);

boolean hasKeyword = SmsFilter.hasKeyword(context, messageBody);

if (inBlackList || (!inWhiteList && hasKeyword)) {

// 拦截短信

abortBroadcast();

}

}

```

在判断拦截条件时,如果短信发送者在黑名单中或者不在白名单中并且短信内容包含关键词,则拦截短信,使用abortBroadcast()方法终止广播传播。如果不满足以上条件,则放行该短信。

以上就是安卓手机短信拦截app的实现原理和详细介绍。


相关知识:
安卓90开发者模式怎么隐藏
安卓开发者模式可以为开发者提供更多的调试和开发选项,但如果手机被非法访问或手机丢失,开启该模式后的手机信息很可能会被黑客获取。因此,为了保障手机的安全,隐藏开发者模式是非常有必要的。下面将介绍如何隐藏安卓9.0开发者模式。1. 处理方式:要隐藏开发者模式,
2023-05-23
安卓8
作为现代智能手机操作系统中最受欢迎的系统之一,Android一直保持着开放和自由的精神,不断为开发者提供更好的开发环境,以便开发者们能够更加轻松便捷地创造出优秀的APP产品。作为其中的一部分,开发者模式成为了Android开发中的关键因素之一,那么,这个功
2023-05-23
安卓4
安卓4.3,也称为Jelly Bean,是安卓操作系统中的一个重要版本。本篇文章将详细介绍安卓4.3的开发原理和相关知识点。一、安卓4.3的特性1. 多用户支持安卓4.3是首个支持多用户的安卓版本。用户可以在同一设备上创建多个帐户,并可进行不同的个性化设置
2023-05-23
安卓10开发者选项
安卓10开发者选项是一个针对开发人员设计的隐藏功能,在安卓操作系统中占据至关重要的位置。通过这个选项,开发人员可以调试Android应用程序,优化设备性能,测试各种设置和功能,还可以对系统进行更高级别的调试和修改。本文将详细介绍安卓10开发者选项的原理及使
2023-05-23
vs2010开发安卓软件
Visual Studio 2010是一个功能强大的开发工具,它可以支持多种开发平台,包括Windows、Web、Office和云端应用等。但是,对于Android平台的支持是非常有限的,因为Visual Studio 2010并不支持Java,而Andr
2023-05-23
ios和安卓开发区别
iOS和安卓都是移动操作系统,分别为苹果公司和谷歌公司推出的手机操作系统,相对而言,iOS和安卓都有各自的优势和特点。接下来,我们将对这两种操作系统进行一个比较全面的介绍。1. 应用开发对于应用开发人员而言,iOS和安卓其中一个的主要差异在于应用的开发语言
2023-05-23
ios和安卓一起开发的技术
在移动应用开发中,iOS和Android是最常见的两个平台。为了让应用在不同平台上运行,通常需要同时使用iOS和Android进行开发。这种技术也被称为“跨平台开发”或“混合式开发”。一般来说,有三种常见的方法可以在iOS和Android上同时开发应用:N
2023-05-23
游戏开发物语app安卓版
游戏开发物语(Game Dev Story)安卓版是一款模拟游戏,让玩家们开设自己的游戏工作室从零开始成立游戏公司,负责开发、市场营销和推广自己设计的游戏。游戏的核心就是模拟运营和发展一家游戏公司的经营过程。这款游戏可能是许多游戏爱好者们的梦想成真,让他们
2023-04-28
沈阳安卓app开发电话口碑推荐
标题:沈阳安卓App开发电话口碑推荐及原理详细介绍随着科技的飞速发展,移动设备已成为人们生活中不可或缺的一部分。安卓作为全球市场占有率最高的移动操作系统,吸引了大量的企业和个人投身到安卓App开发领域能。在中国沈阳市,也有很多专业的安卓App开发公司为用户
2023-04-28
安卓端购物app开发
安卓端购物App开发的原理是在安卓系统上利用Java语言,结合安卓SDK开发工具以及后端服务器技术,构建与用户交互的安卓应用程序。主要包括前端逻辑开发、UI设计、后端数据接口设计、数据存储等。1.前端逻辑开发首先,需要根据需求设计安卓端的app功能模块,并
2023-04-28
安卓app项目开发主题
安卓APP开发主题可以有很多,下面仅介绍几个:1. 电商APP的开发随着电商的兴起,很多商家开始将业务拓展到手机端,这样可以更好地满足用户需求,同时也能为商家带来更多的收入。电商APP的开发需要考虑到界面设计、用户体验、支付接口、数据安全等方面。2. 社交
2023-04-28
app云打包安卓项目
云打包是一种将应用程序打包成一个可执行文件,并在运行时自动获取资源的技术。在移动互联网时代,云打包已经广泛应用于Android应用程序中。实现app云打包,需要一个云打包平台的支持。常见的云打包平台有fir.im、蒲公英、应用宝等。这些平台提供了一个在线打
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1