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


相关知识:
安卓2048开发教程
2048是一款在手机、电脑等设备上非常流行的益智游戏,游戏的目标是将数字块合并为2048。在这篇文章中,我们将介绍如何开发一个安卓版本的2048游戏。首先,我们需要了解2048的游戏规则。游戏的界面是一个 4*4 的方格,在一开始时,游戏区域中随机出现两个
2023-05-23
linux安卓开发工具
在开发Android应用程序时,开发工具是必不可少的。有一些流行的Android开发工具,特别是在Linux操作系统下非常受欢迎。本文将介绍几个最受欢迎的Linux Android开发工具,并深入探讨其工作原理和使用方法。1. Android Studio
2023-05-23
labview有没有安卓开发环境
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是美国国家仪器公司(NI)开发的一款可视化编程语言。LabVIEW面向测量和控制系统设计,是开发数据采集、数据分析、控制系统和信号处理的
2023-05-23
java后端开发与安卓开发的区别
Java后端开发和安卓开发都是基于Java语言的,但它们的开发范畴有很大的不同。Java后端开发主要是指基于Java语言开发后端服务的领域,也可以称为Java Web开发。Java后端开发主要负责构建Web应用程序和Web服务,是一种服务端编程。常用的后台
2023-05-23
amd处理器可以进行安卓开发吗
当今,移动设备已经成为人们日常生活的必要品,而安卓系统是最为广泛使用的移动设备系统之一。对于一些开发者来说,安卓应用开发已经成为一项热门领域。这也引起了一些人的关注,他们想知道是否可以使用AMD处理器来进行安卓开发。下面我将给大家做一下详细的介绍。在Win
2023-05-23
简易安卓app怎么制作
要制作一个简易的安卓app,可以通过以下步骤实现:1. 下载并安装Android Studio软件,这是一个Android app开发的IDE。在安装中保留所有选项。2. 新建一个Android Project。在新建项目时,需要选择项目的名称、包名、最低
2023-04-28
求安卓购物app开发资料
安卓购物APP开发资料:原理与详细介绍一、安卓购物APP开发概述安卓购物APP是一种基于Android系统的移动应用。其核心功能是让用户在手机上浏览各种商品,进行下单购买。开发一个购物APP需要掌握Android开发技术,了解网络通信、数据库存储、支付系统
2023-04-28
安卓资讯app开发费用
安卓资讯类App开发费用依赖于多个因素,我将为您详细介绍这些因素以及它们如何影响项目的成本。同时,我将简要概述开发过程中的原理和流程。1. 产品功能和复杂性开发成本与应用的功能和其复杂性密切相关。如果一个应用有很多功能、复杂的 UI 设计和交互,开发时间和
2023-04-28
安卓社交app制作费用
安卓社交 App 制作的费用因应用的功能和复杂程度而异。以下是一些可能影响费用的因素:1. 功能和要求:应用需要的功能越多,复杂程度越高,制作费用越高。简单的社交 App 可能只需基本的登录、个人资料和消息功能,而高级的社交 App 则需要实时聊天、社交网
2023-04-28
安卓app开发阅读器
安卓阅读器是一款主要用于阅读电子书、杂志、新闻、博客等文献的应用程序。主要原理是通过解析不同格式的电子书文件,将其呈现在用户界面上,并提供各种文本处理和阅读功能,以方便用户进行阅读。以下是安卓阅读器的一些主要原理和功能特点:1.支持多种电子书格式:它可以识
2023-04-28
安卓app开发知乎推广
【安卓App开发知乎推广:原理及详细介绍】安卓App开发在现今社会越来越受欢迎,而作为一个拥有众多知识型用户的社交平台,知乎对于推广App具有很大的潜力。以下是关于如何利用知乎来推广安卓App的原理和详细介绍。一、为什么选择知乎进行推广?1. 积聚专业用户
2023-04-28
安卓app开发实现本地扫描
安卓App开发实现本地扫描通常涉及到二维码/条形码的识别和解析。在进行开发时,可以通过几个基本步骤来实现。以下是一个简单的实现原理和详细介绍。一、原理:本地扫描实现的原理可以分为以下几个步骤:1. 访问手机相机并获取实时图像2. 对获取到的图像进行处理,提
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1