安卓手机短信拦截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 开发支付功能有哪些
在安卓应用程序开发的过程中,支付功能是用户最为关注的部分。在这种情况下,你可以考虑使用支付平台,如支付宝、微信支付等。本文将介绍安卓应用程序开发中的支付功能和两个常用的支付平台。1. 支付功能的实现原理在安卓应用程序中,支付功能一般都是基于第三方支付平台实
2023-05-23
安卓 嵌入式开发
安卓嵌入式开发是一门基于安卓操作系统的软件开发技术。开发嵌入式系统的目的是为了让设备更加智能化和功能完善化。其本质是将安卓系统移植到嵌入式设备中,利用安卓庞大的生态系统来实现设备的各种应用功能。下面将从原理、开发流程、开发工具和应用领域四个方面进行详细介绍
2023-05-23
c语言为什么不能开发安卓app
C语言是一种高级编程语言,由Dennis Ritchie在20世纪70年代初期开发。C语言是一种基于系统的语言,常用于开发嵌入式系统、系统软件、驱动程序、游戏以及计算机应用软件等方面。然而,虽然C语言在诸多领域中有着广泛的应用,但是它并不适合用于安卓应用程
2023-05-23
简述安卓app应用的开发步骤
安卓应用的开发主要包括以下步骤:1. 确定应用需求和功能在开发应用前,需要确定应用的功能和需求。最好写下一份详细的应用需求文档,为之后的开发提供参考。2. 设计应用界面应用界面是用户接触应用的第一步,设计良好的界面能够提升用户体验。设计应用界面时需要考虑用
2023-04-28
怎么用电脑开发安卓app
在电脑上开发安卓App主要需要以下几个步骤:搭建开发环境、学习编程语言、了解安卓框架及组件、编写代码,测试和优化App。下面将为你详细介绍这几个步骤。**1. 搭建开发环境**首先需要在你的电脑上安装Android Studio开发工具。这是一个由谷歌官方
2023-04-28
安卓系统 车载终端app开发
安卓系统车载终端是基于安卓系统开发的一种特殊终端,主要用于车载应用和娱乐系统。因此,车载终端App的开发需要针对车辆使用环境的特殊性进行优化和定制。首先,车载终端App需要有对车载设备的硬件控制功能。例如,应包括程序控制音频输入、输出,操作车载影像系统和控
2023-04-28
安卓拍照app快速开发工具
安卓拍照app快速开发可以使用Android系统自带的Camera API,通过编写Java代码实现。以下是开发实现的步骤:1. 添加权限在AndroidManifest.xml文件中添加相机权限,以便应用程序能够访问相机设备。``````2. 布局设计创
2023-04-28
安卓手机app开发价格怎么计算
安卓手机App开发价格的计算是一个相对复杂的过程,因为它涉及到多个因素。下面是一些关键因素,以及如何考虑它们来计算安卓App开发的价格。1. 应用的复杂性和功能 应用的复杂性是开发成本的主要决定因素。根据功能数量、用户界面、技术难度等,可以将应用分为简
2023-04-28
安卓app项目开发专业实习报告
标题:安卓App项目开发实习报告摘要:本报告详细阐述了一位实习生在进行安卓App项目开发实习期间所参与的项目、从实习到实践所应用的技术、收获的经验以及完整的开发过程。这份报告适合任何有兴趣了解安卓App开发流程和基本原理的读者。目录:1. 引言2. 安卓开
2023-04-28
安卓app开发细节介绍
安卓应用开发细节介绍安卓应用开发涉及许多细节,从应用的基本结构、开发环境的搭建,到最终在应用市场上架,每一个阶段都需要严谨的处理。以下是安卓应用开发的详细介绍,包括原理和开发过程。一、安卓应用的基本结构1. manifest文件(Manifest文件)Ma
2023-04-28
安卓app开发简单吗
安卓应用开发是一个涵盖了许多知识点和技能的过程,适合具有编程基础的开发者。以下是关于安卓应用开发的原理和详细介绍。安卓是一种基于Linux内核的开放源代码的移动操作系统,由谷歌(Google)推出。开发安卓APP主要有两种编程语言,Java和Kotlin。
2023-04-28
云打包安卓app
云打包(Cloud Packaging)指的是一种将Android应用程序打包成一个云服务的方法。使用云打包技术可以帮助开发者减少应用程序的本地存储大小,并提高应用程序的安全性和稳定性。下面我来详细介绍一下云打包的原理和操作。1. 打包方式一般云打包有两种
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1