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


相关知识:
安卓app 开发实践
在当今移动互联网时代,安卓平台的应用开发已经成为一个非常热门的领域。为了更好的满足用户需求,开发者们需要不断地挖掘和实践更高效、更实用的应用开发方法。安卓应用开发的基础首先,学习安卓应用开发需要掌握 Java 编程语言,熟练掌握各种基础知识,例如变量、方法
2023-05-23
安卓10开发版aom
安卓10开发版aom是Android Open Source Project的缩写,翻译为“安卓开放源代码项目”。这是一个由Google公司主导的开源操作系统项目,旨在为设备制造商、软件开发商和普通用户提供安全、稳定和性能卓越的操作系统。AOM的工作原理非
2023-05-23
vs开发安卓用什么语言
Visual Studio是一款由Microsoft开发的集成开发环境(IDE),用于创建Windows和Web应用程序。不过,Visual Studio也提供了一种跨平台的本地开发环境来支持安卓应用程序的开发。对于Visual Studio来说,C#语言
2023-05-23
miui12是基于安卓几开发的
MIUI 12是小米公司旗下的一款操作系统,是基于安卓10开发的。MIUI 12的目标是为用户提供更流畅、更快捷和更人性化的体验。MIUI 12在安卓和小米自己的MIUI操作系统之间进行了融合。MIUI的核心是安卓操作系统,但是小米对其进行了深度定制,以达
2023-05-23
js可以开发安卓app吗
JavaScript是一种高级编程语言,虽然它最初被设计为用于在网页浏览器中创建动态交互性的Web页面,但是现在它已经成为一种广泛用于编写Web和移动应用程序的语言。然而,由于Android是一个移动操作系统,许多人认为JavaScript不能用于开发An
2023-05-23
dueros是基于安卓开发的吗
Dueros(度秘)是百度推出的一款语音交互产品,通过语音技术实现人机交互。相比于普通的语音助手,Dueros具有更强的语音理解和交互能力,可以进行多轮对话,并能够支持多种语音命令,目前已经应用于手机、智能音箱、智能家居等多种场景。与安卓操作系统的关系Du
2023-05-23
安卓手机app开发python
安卓手机App开发是目前非常流行的一项技术,而Python作为一种高级编程语言,也可以用于安卓手机app的开发。Python在安卓手机App开发中的运用主要是通过使用Kivy框架来实现的。Kivy是一个跨平台的Python GUI开发框架,它具有跨平台、开
2023-04-28
安卓开发游戏app用什么框架
安卓开发游戏App可以使用多种框架,下面介绍几种常见的框架:1. Unity3D:Unity3D是一款跨平台的游戏引擎,适用于2D和3D游戏的开发。它可支持Android、iOS、Windows、Mac等平台,具有强大的跨平台实现功能和渲染引擎,让开发者只
2023-04-28
安卓iso苹果app开发制作
安卓和iOS是目前智能手机市场上占有主导地位的操作系统。而针对这两个操作系统的应用程序开发,主要涉及到两种编程语言:Java和Kotlin(安卓)以及Objective-C和Swift(iOS)。下面将详细介绍如何开发安卓和iOS应用程序。安卓应用程序开发
2023-04-28
可同时开发ios和安卓app的语言
标题:跨平台移动应用开发:支持 iOS 和 Android 的编程语言与框架摘要:本文将详细介绍一些支持同时为 iOS 和 Android 平台开发移动应用的编程语言及其背后的原理。通过阅读本文,你将了解不同的跨平台移动应用开发框架,从而选择适合你的项目需
2023-04-28
佳云商安卓手机app开发
佳云商安卓手机app开发:原理和详细介绍在当今互联网时代,手机app开发日益受到重视。而安卓系统占据了市场的主要份额,具有更广泛的用户基础。本文将为你详细介绍佳云商安卓手机app开发的原理和关键技术。一、安卓app开发基本原理:安卓系统基于Linux内核,
2023-04-28
java原生开发安卓app
Java原生开发安卓应用程序的基本原理是将Java语言编写的代码编译成可在Android操作系统上运行的Dalvik字节码文件,并在Android设备上通过安装应用程序的方式运行。本文将基于这个原理介绍Java原生开发安卓应用程序的基本步骤。1. 安装开发
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1