安卓手机短信拦截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的实现原理和详细介绍。


相关知识:
安卓4
在Android系统中,开发者选项是一项非常有用的功能,通过开发者选项,我们可以开启USB调试、在模拟器中模拟位置、调试GPU过程,以及对软件进行调试等等,十分方便。那么在安卓4.4.4系统中,如何进入开发者选项呢?首先,在Android系统中,开发者选项
2023-05-23
uniapp实现安卓开发
UniApp是一种基于Vue.js框架的跨平台应用开发框架,通过一套代码即可在多个平台上运行,包括Android、iOS和Web等不同平台。其中,Android平台可以通过编译生成apk文件,实现安卓开发。UniApp的实现原理主要基于以下几点:1. We
2023-05-23
spring框架在安卓开发中可以用吗
Spring框架是一个功能强大的开源框架,最初是为企业级Java应用程序的开发而设计的。它提供了如控制反转(Inversion of Control,IoC)、面向切面编程(Aspect-Oriented Programming,AOP)等高级功能。然而对
2023-05-23
qt开发安卓需要什么组件
在Qt中进行安卓开发,需要使用Qt for Android组件。Qt for Android 是Qt官方的安卓开发组件,它是开发安卓应用和游戏的强大工具。Qt for Android 是建立在 Android SDK 工具之上,它允许开发者使用 C++ 和
2023-05-23
ka开发电子花魁榜安卓版
“电子花魁榜”是一款基于Ka开发的安卓应用程序,它主要用于评选出“花魁”的应用。在日本江户时代,花魁是一种特殊的妓女,被认为是最具魅力的女性。因此,“花魁”这个词成为了用于描述美女的代名词。在这款应用中,用户可以浏览已经被评为“花魁”的女性的照片和简介,并
2023-05-23
h5开发是否可以完全代替安卓
H5开发是一种前端技术,用于在网页上展示各种功能。相比之下,安卓开发则是一种移动开发技术,用于创建运行在安卓操作系统上的应用程序。虽然H5开发可以在移动浏览器上运行,但它无法完全代替安卓应用程序的开发。以下是我对这个话题的详细解释。1. 功能限制虽然H5可
2023-05-23
ch34安卓开发
Android开发是现在移动开发中最流行的开发方式。它涵盖了移动开发的所有方向,包括应用开发、游戏开发等。下面我们将详细讲解Android开发的原理和基本概念。1. Android开发基础概念Android是一个开源的操作系统,基于Linux内核,由Goo
2023-05-23
手机上制作一个简单的安卓app
要在手机上制作一个简单的安卓app,可以通过以下几个步骤实现:1. 下载Android StudioAndroid Studio是安卓开发的官方IDE,可以帮助我们构建安卓应用程序。它是免费的,可以从Google官网上进行下载。2. 安装并启动Androi
2023-04-28
开发安卓app有哪些开发工具
在开发Android应用程序时,常用的开发工具包含如下:1. Android StudioAndroid Studio是Google官方推出的以Intellij IDEA为基础的Android应用程序开发工具。免费、开源,附带丰富的库和工具,支持多平台开发
2023-04-28
安卓app用什么开发环境
安卓App一般使用Android Studio这个开发环境进行开发。Android Studio是谷歌官方推荐的一款开发Android应用程序的集成开发环境(IDE),是基于IntelliJ IDEA的开发环境。它集成了Android SDK,可以方便地进
2023-04-28
安卓app开发环境搭建和配置
安卓开发环境搭建比较复杂,需要进行多个步骤的配置。这里我们介绍一下常用的安卓开发环境搭建和配置方法。首先,需要下载并安装 JDK,即 Java Development Kit。JDK 是一个开发环境,可以让您编写、编译和执行 Java 程序。如果您还没有
2023-04-28
好用安卓app制作多少钱
制作一个好用的安卓app所需要的费用因人而异,取决于多个因素。下面是一些可能会影响费用的因素:1. 功能:app有哪些功能,这些功能有多复杂、需要多少时间和技能才能实现。2. 设计:app的设计风格以及用户界面的样式和交互设计对费用也有很大的影响。3. 平
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1